summaryrefslogtreecommitdiffstats
path: root/mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol
diff options
context:
space:
mode:
authorMatt A. Tobin <email@mattatobin.com>2019-04-23 15:32:23 -0400
committerMatt A. Tobin <email@mattatobin.com>2019-04-23 15:32:23 -0400
commitabe80cc31d5a40ebed743085011fbcda0c1a9a10 (patch)
treefb3762f06b84745b182af281abb107b95a9fcf01 /mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol
parent63295d0087eb58a6eb34cad324c4c53d1b220491 (diff)
downloadUXP-abe80cc31d5a40ebed743085011fbcda0c1a9a10.tar
UXP-abe80cc31d5a40ebed743085011fbcda0c1a9a10.tar.gz
UXP-abe80cc31d5a40ebed743085011fbcda0c1a9a10.tar.lz
UXP-abe80cc31d5a40ebed743085011fbcda0c1a9a10.tar.xz
UXP-abe80cc31d5a40ebed743085011fbcda0c1a9a10.zip
Issue #1053 - Drop support Android and remove Fennec - Part 1a: Remove mobile/android
Diffstat (limited to 'mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol')
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/BasicHttpContext.java95
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/BasicHttpProcessor.java246
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/ChainBuilder.java126
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/DefaultedHttpContext.java84
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/ExecutionContext.java80
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/HTTP.java135
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/HttpContext.java75
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/HttpCoreContext.java152
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/HttpDateGenerator.java77
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/HttpExpectationVerifier.java81
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/HttpProcessor.java55
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/HttpProcessorBuilder.java151
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/HttpRequestExecutor.java311
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/HttpRequestHandler.java62
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/HttpRequestHandlerMapper.java50
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/HttpRequestHandlerRegistry.java107
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/HttpRequestHandlerResolver.java51
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/HttpRequestInterceptorList.java103
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/HttpResponseInterceptorList.java103
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/HttpService.java447
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/ImmutableHttpProcessor.java143
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/RequestConnControl.java69
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/RequestContent.java127
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/RequestDate.java65
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/RequestExpectContinue.java93
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/RequestTargetHost.java95
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/RequestUserAgent.java79
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/ResponseConnControl.java105
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/ResponseContent.java133
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/ResponseDate.java66
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/ResponseServer.java71
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/SyncBasicHttpContext.java74
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/UriHttpRequestHandlerMapper.java115
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/UriPatternMatcher.java165
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/package-info.java32
35 files changed, 0 insertions, 4023 deletions
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/BasicHttpContext.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/BasicHttpContext.java
deleted file mode 100644
index 72c247a5e..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/BasicHttpContext.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- * ====================================================================
- * 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.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-
-package ch.boye.httpclientandroidlib.protocol;
-
-import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
-
-import ch.boye.httpclientandroidlib.annotation.ThreadSafe;
-import ch.boye.httpclientandroidlib.util.Args;
-
-/**
- * Default implementation of {@link HttpContext}.
- * <p>
- * Please note instances of this class can be thread unsafe if the
- * parent context is not thread safe.
- *
- * @since 4.0
- */
-@ThreadSafe
-public class BasicHttpContext implements HttpContext {
-
- private final HttpContext parentContext;
- private final Map<String, Object> map;
-
- public BasicHttpContext() {
- this(null);
- }
-
- public BasicHttpContext(final HttpContext parentContext) {
- super();
- this.map = new ConcurrentHashMap<String, Object>();
- this.parentContext = parentContext;
- }
-
- public Object getAttribute(final String id) {
- Args.notNull(id, "Id");
- Object obj = this.map.get(id);
- if (obj == null && this.parentContext != null) {
- obj = this.parentContext.getAttribute(id);
- }
- return obj;
- }
-
- public void setAttribute(final String id, final Object obj) {
- Args.notNull(id, "Id");
- if (obj != null) {
- this.map.put(id, obj);
- } else {
- this.map.remove(id);
- }
- }
-
- public Object removeAttribute(final String id) {
- Args.notNull(id, "Id");
- return this.map.remove(id);
- }
-
- /**
- * @since 4.2
- */
- public void clear() {
- this.map.clear();
- }
-
- @Override
- public String toString() {
- return this.map.toString();
- }
-
-}
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/BasicHttpProcessor.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/BasicHttpProcessor.java
deleted file mode 100644
index 1fa203cef..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/BasicHttpProcessor.java
+++ /dev/null
@@ -1,246 +0,0 @@
-/*
- * ====================================================================
- * 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.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-
-package ch.boye.httpclientandroidlib.protocol;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import ch.boye.httpclientandroidlib.HttpException;
-import ch.boye.httpclientandroidlib.HttpRequest;
-import ch.boye.httpclientandroidlib.HttpRequestInterceptor;
-import ch.boye.httpclientandroidlib.HttpResponse;
-import ch.boye.httpclientandroidlib.HttpResponseInterceptor;
-import ch.boye.httpclientandroidlib.annotation.NotThreadSafe;
-import ch.boye.httpclientandroidlib.util.Args;
-
-/**
- * Default implementation of {@link HttpProcessor}.
- * <p>
- * Please note access to the internal structures of this class is not
- * synchronized and therefore this class may be thread-unsafe.
- *
- * @since 4.0
- *
- * @deprecated (4.3)
- */
-@NotThreadSafe
-@Deprecated
-public final class BasicHttpProcessor implements
- HttpProcessor, HttpRequestInterceptorList, HttpResponseInterceptorList, Cloneable {
-
- // Don't allow direct access, as nulls are not allowed
- protected final List<HttpRequestInterceptor> requestInterceptors = new ArrayList<HttpRequestInterceptor>();
- protected final List<HttpResponseInterceptor> responseInterceptors = new ArrayList<HttpResponseInterceptor>();
-
- public void addRequestInterceptor(final HttpRequestInterceptor itcp) {
- if (itcp == null) {
- return;
- }
- this.requestInterceptors.add(itcp);
- }
-
- public void addRequestInterceptor(
- final HttpRequestInterceptor itcp, final int index) {
- if (itcp == null) {
- return;
- }
- this.requestInterceptors.add(index, itcp);
- }
-
- public void addResponseInterceptor(
- final HttpResponseInterceptor itcp, final int index) {
- if (itcp == null) {
- return;
- }
- this.responseInterceptors.add(index, itcp);
- }
-
- public void removeRequestInterceptorByClass(final Class<? extends HttpRequestInterceptor> clazz) {
- for (final Iterator<HttpRequestInterceptor> it = this.requestInterceptors.iterator();
- it.hasNext(); ) {
- final Object request = it.next();
- if (request.getClass().equals(clazz)) {
- it.remove();
- }
- }
- }
-
- public void removeResponseInterceptorByClass(final Class<? extends HttpResponseInterceptor> clazz) {
- for (final Iterator<HttpResponseInterceptor> it = this.responseInterceptors.iterator();
- it.hasNext(); ) {
- final Object request = it.next();
- if (request.getClass().equals(clazz)) {
- it.remove();
- }
- }
- }
-
- public final void addInterceptor(final HttpRequestInterceptor interceptor) {
- addRequestInterceptor(interceptor);
- }
-
- public final void addInterceptor(final HttpRequestInterceptor interceptor, final int index) {
- addRequestInterceptor(interceptor, index);
- }
-
- public int getRequestInterceptorCount() {
- return this.requestInterceptors.size();
- }
-
- public HttpRequestInterceptor getRequestInterceptor(final int index) {
- if ((index < 0) || (index >= this.requestInterceptors.size())) {
- return null;
- }
- return this.requestInterceptors.get(index);
- }
-
- public void clearRequestInterceptors() {
- this.requestInterceptors.clear();
- }
-
- public void addResponseInterceptor(final HttpResponseInterceptor itcp) {
- if (itcp == null) {
- return;
- }
- this.responseInterceptors.add(itcp);
- }
-
- public final void addInterceptor(final HttpResponseInterceptor interceptor) {
- addResponseInterceptor(interceptor);
- }
-
- public final void addInterceptor(final HttpResponseInterceptor interceptor, final int index) {
- addResponseInterceptor(interceptor, index);
- }
-
- public int getResponseInterceptorCount() {
- return this.responseInterceptors.size();
- }
-
- public HttpResponseInterceptor getResponseInterceptor(final int index) {
- if ((index < 0) || (index >= this.responseInterceptors.size())) {
- return null;
- }
- return this.responseInterceptors.get(index);
- }
-
- public void clearResponseInterceptors() {
- this.responseInterceptors.clear();
- }
-
- /**
- * Sets the interceptor lists.
- * First, both interceptor lists maintained by this processor
- * will be cleared.
- * Subsequently,
- * elements of the argument list that are request interceptors will be
- * added to the request interceptor list.
- * Elements that are response interceptors will be
- * added to the response interceptor list.
- * Elements that are both request and response interceptor will be
- * added to both lists.
- * Elements that are neither request nor response interceptor
- * will be ignored.
- *
- * @param list the list of request and response interceptors
- * from which to initialize
- */
- public void setInterceptors(final List<?> list) {
- Args.notNull(list, "Inteceptor list");
- this.requestInterceptors.clear();
- this.responseInterceptors.clear();
- for (final Object obj : list) {
- if (obj instanceof HttpRequestInterceptor) {
- addInterceptor((HttpRequestInterceptor) obj);
- }
- if (obj instanceof HttpResponseInterceptor) {
- addInterceptor((HttpResponseInterceptor) obj);
- }
- }
- }
-
- /**
- * Clears both interceptor lists maintained by this processor.
- */
- public void clearInterceptors() {
- clearRequestInterceptors();
- clearResponseInterceptors();
- }
-
- public void process(
- final HttpRequest request,
- final HttpContext context)
- throws IOException, HttpException {
- for (final HttpRequestInterceptor interceptor : this.requestInterceptors) {
- interceptor.process(request, context);
- }
- }
-
- public void process(
- final HttpResponse response,
- final HttpContext context)
- throws IOException, HttpException {
- for (final HttpResponseInterceptor interceptor : this.responseInterceptors) {
- interceptor.process(response, context);
- }
- }
-
- /**
- * Sets up the target to have the same list of interceptors
- * as the current instance.
- *
- * @param target object to be initialised
- */
- protected void copyInterceptors(final BasicHttpProcessor target) {
- target.requestInterceptors.clear();
- target.requestInterceptors.addAll(this.requestInterceptors);
- target.responseInterceptors.clear();
- target.responseInterceptors.addAll(this.responseInterceptors);
- }
-
- /**
- * Creates a copy of this instance
- *
- * @return new instance of the BasicHttpProcessor
- */
- public BasicHttpProcessor copy() {
- final BasicHttpProcessor clone = new BasicHttpProcessor();
- copyInterceptors(clone);
- return clone;
- }
-
- @Override
- public Object clone() throws CloneNotSupportedException {
- final BasicHttpProcessor clone = (BasicHttpProcessor) super.clone();
- copyInterceptors(clone);
- return clone;
- }
-
-}
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/ChainBuilder.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/ChainBuilder.java
deleted file mode 100644
index 19971ffa1..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/ChainBuilder.java
+++ /dev/null
@@ -1,126 +0,0 @@
-/*
- * ====================================================================
- * 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.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-
-package ch.boye.httpclientandroidlib.protocol;
-
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.LinkedList;
-import java.util.Map;
-
-import ch.boye.httpclientandroidlib.annotation.NotThreadSafe;
-
-/**
- * Builder class to build a linked list (chain) of unique class instances. Each class can have
- * only one instance in the list. Useful for building lists of protocol interceptors.
- *
- * @see ImmutableHttpProcessor
- *
- * @since 4.3
- */
-@NotThreadSafe
-final class ChainBuilder<E> {
-
- private final LinkedList<E> list;
- private final Map<Class<?>, E> uniqueClasses;
-
- public ChainBuilder() {
- this.list = new LinkedList<E>();
- this.uniqueClasses = new HashMap<Class<?>, E>();
- }
-
- private void ensureUnique(final E e) {
- final E previous = this.uniqueClasses.remove(e.getClass());
- if (previous != null) {
- this.list.remove(previous);
- }
- this.uniqueClasses.put(e.getClass(), e);
- }
-
- public ChainBuilder<E> addFirst(final E e) {
- if (e == null) {
- return this;
- }
- ensureUnique(e);
- this.list.addFirst(e);
- return this;
- }
-
- public ChainBuilder<E> addLast(final E e) {
- if (e == null) {
- return this;
- }
- ensureUnique(e);
- this.list.addLast(e);
- return this;
- }
-
- public ChainBuilder<E> addAllFirst(final Collection<E> c) {
- if (c == null) {
- return this;
- }
- for (final E e: c) {
- addFirst(e);
- }
- return this;
- }
-
- public ChainBuilder<E> addAllFirst(final E... c) {
- if (c == null) {
- return this;
- }
- for (final E e: c) {
- addFirst(e);
- }
- return this;
- }
-
- public ChainBuilder<E> addAllLast(final Collection<E> c) {
- if (c == null) {
- return this;
- }
- for (final E e: c) {
- addLast(e);
- }
- return this;
- }
-
- public ChainBuilder<E> addAllLast(final E... c) {
- if (c == null) {
- return this;
- }
- for (final E e: c) {
- addLast(e);
- }
- return this;
- }
-
- public LinkedList<E> build() {
- return new LinkedList<E>(this.list);
- }
-
-}
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/DefaultedHttpContext.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/DefaultedHttpContext.java
deleted file mode 100644
index 63ef87b98..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/DefaultedHttpContext.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * ====================================================================
- * 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.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-
-package ch.boye.httpclientandroidlib.protocol;
-
-import ch.boye.httpclientandroidlib.util.Args;
-
-/**
- * {@link HttpContext} implementation that delegates resolution of an attribute
- * to the given default {@link HttpContext} instance if the attribute is not
- * present in the local one. The state of the local context can be mutated,
- * whereas the default context is treated as read-only.
- *
- * @since 4.0
- *
- * @deprecated (4.3) no longer used.
- */
-@Deprecated
-public final class DefaultedHttpContext implements HttpContext {
-
- private final HttpContext local;
- private final HttpContext defaults;
-
- public DefaultedHttpContext(final HttpContext local, final HttpContext defaults) {
- super();
- this.local = Args.notNull(local, "HTTP context");
- this.defaults = defaults;
- }
-
- public Object getAttribute(final String id) {
- final Object obj = this.local.getAttribute(id);
- if (obj == null) {
- return this.defaults.getAttribute(id);
- } else {
- return obj;
- }
- }
-
- public Object removeAttribute(final String id) {
- return this.local.removeAttribute(id);
- }
-
- public void setAttribute(final String id, final Object obj) {
- this.local.setAttribute(id, obj);
- }
-
- public HttpContext getDefaults() {
- return this.defaults;
- }
-
- @Override
- public String toString() {
- final StringBuilder buf = new StringBuilder();
- buf.append("[local: ").append(this.local);
- buf.append("defaults: ").append(this.defaults);
- buf.append("]");
- return buf.toString();
- }
-
-}
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/ExecutionContext.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/ExecutionContext.java
deleted file mode 100644
index b27a481df..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/ExecutionContext.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * ====================================================================
- * 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.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-
-package ch.boye.httpclientandroidlib.protocol;
-
-/**
- * {@link HttpContext} attribute names for protocol execution.
- *
- * @since 4.0
- *
- * @deprecated (4.3) use {@link HttpCoreContext}.
- */
-@Deprecated
-public interface ExecutionContext {
-
- /**
- * Attribute name of a {@link ch.boye.httpclientandroidlib.HttpConnection} object that
- * represents the actual HTTP connection.
- */
- public static final String HTTP_CONNECTION = "http.connection";
-
- /**
- * Attribute name of a {@link ch.boye.httpclientandroidlib.HttpRequest} object that
- * represents the actual HTTP request.
- */
- public static final String HTTP_REQUEST = "http.request";
-
- /**
- * Attribute name of a {@link ch.boye.httpclientandroidlib.HttpResponse} object that
- * represents the actual HTTP response.
- */
- public static final String HTTP_RESPONSE = "http.response";
-
- /**
- * Attribute name of a {@link ch.boye.httpclientandroidlib.HttpHost} object that
- * represents the connection target.
- */
- public static final String HTTP_TARGET_HOST = "http.target_host";
-
- /**
- * Attribute name of a {@link ch.boye.httpclientandroidlib.HttpHost} object that
- * represents the connection proxy.
- *
- * @deprecated (4.3) do not use.
- */
- @Deprecated
- public static final String HTTP_PROXY_HOST = "http.proxy_host";
-
- /**
- * Attribute name of a {@link Boolean} object that represents the
- * the flag indicating whether the actual request has been fully transmitted
- * to the target host.
- */
- public static final String HTTP_REQ_SENT = "http.request_sent";
-
-}
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/HTTP.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/HTTP.java
deleted file mode 100644
index 593b3bfdf..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/HTTP.java
+++ /dev/null
@@ -1,135 +0,0 @@
-/*
- * ====================================================================
- * 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.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-
-package ch.boye.httpclientandroidlib.protocol;
-
-import java.nio.charset.Charset;
-
-import ch.boye.httpclientandroidlib.Consts;
-
-/**
- * Constants and static helpers related to the HTTP protocol.
- *
- * @since 4.0
- */
-public final class HTTP {
-
- public static final int CR = 13; // <US-ASCII CR, carriage return (13)>
- public static final int LF = 10; // <US-ASCII LF, linefeed (10)>
- public static final int SP = 32; // <US-ASCII SP, space (32)>
- public static final int HT = 9; // <US-ASCII HT, horizontal-tab (9)>
-
- /** HTTP header definitions */
- public static final String TRANSFER_ENCODING = "Transfer-Encoding";
- public static final String CONTENT_LEN = "Content-Length";
- public static final String CONTENT_TYPE = "Content-Type";
- public static final String CONTENT_ENCODING = "Content-Encoding";
- public static final String EXPECT_DIRECTIVE = "Expect";
- public static final String CONN_DIRECTIVE = "Connection";
- public static final String TARGET_HOST = "Host";
- public static final String USER_AGENT = "User-Agent";
- public static final String DATE_HEADER = "Date";
- public static final String SERVER_HEADER = "Server";
-
- /** HTTP expectations */
- public static final String EXPECT_CONTINUE = "100-continue";
-
- /** HTTP connection control */
- public static final String CONN_CLOSE = "Close";
- public static final String CONN_KEEP_ALIVE = "Keep-Alive";
-
- /** Transfer encoding definitions */
- public static final String CHUNK_CODING = "chunked";
- public static final String IDENTITY_CODING = "identity";
-
- public static final Charset DEF_CONTENT_CHARSET = Consts.ISO_8859_1;
- public static final Charset DEF_PROTOCOL_CHARSET = Consts.ASCII;
-
- /**
- * @deprecated (4.2)
- */
- @Deprecated
- public static final String UTF_8 = "UTF-8";
- /**
- * @deprecated (4.2)
- */
- @Deprecated
- public static final String UTF_16 = "UTF-16";
- /**
- * @deprecated (4.2)
- */
- @Deprecated
- public static final String US_ASCII = "US-ASCII";
- /**
- * @deprecated (4.2)
- */
- @Deprecated
- public static final String ASCII = "ASCII";
- /**
- * @deprecated (4.2)
- */
- @Deprecated
- public static final String ISO_8859_1 = "ISO-8859-1";
- /**
- * @deprecated (4.2)
- */
- @Deprecated
- public static final String DEFAULT_CONTENT_CHARSET = ISO_8859_1;
- /**
- * @deprecated (4.2)
- */
- @Deprecated
- public static final String DEFAULT_PROTOCOL_CHARSET = US_ASCII;
- /**
- * @deprecated (4.2)
- */
- @Deprecated
- public final static String OCTET_STREAM_TYPE = "application/octet-stream";
- /**
- * @deprecated (4.2)
- */
- @Deprecated
- public final static String PLAIN_TEXT_TYPE = "text/plain";
- /**
- * @deprecated (4.2)
- */
- @Deprecated
- public final static String CHARSET_PARAM = "; charset=";
- /**
- * @deprecated (4.2)
- */
- @Deprecated
- public final static String DEFAULT_CONTENT_TYPE = OCTET_STREAM_TYPE;
-
- public static boolean isWhitespace(final char ch) {
- return ch == SP || ch == HT || ch == CR || ch == LF;
- }
-
- private HTTP() {
- }
-
-}
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/HttpContext.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/HttpContext.java
deleted file mode 100644
index c2b70ccea..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/HttpContext.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * ====================================================================
- * 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.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-
-package ch.boye.httpclientandroidlib.protocol;
-
-/**
- * HttpContext represents execution state of an HTTP process. It is a structure
- * that can be used to map an attribute name to an attribute value.
- * <p/>
- * The primary purpose of the HTTP context is to facilitate information sharing
- * among various logically related components. HTTP context can be used
- * to store a processing state for one message or several consecutive messages.
- * Multiple logically related messages can participate in a logical session
- * if the same context is reused between consecutive messages.
- * <p>/
- * IMPORTANT: Please note HTTP context implementation, even when thread safe,
- * may not be used concurrently by multiple threads, as the context may contain
- * thread unsafe attributes.
- *
- * @since 4.0
- */
-public interface HttpContext {
-
- /** The prefix reserved for use by HTTP components. "http." */
- public static final String RESERVED_PREFIX = "http.";
-
- /**
- * Obtains attribute with the given name.
- *
- * @param id the attribute name.
- * @return attribute value, or <code>null</code> if not set.
- */
- Object getAttribute(String id);
-
- /**
- * Sets value of the attribute with the given name.
- *
- * @param id the attribute name.
- * @param obj the attribute value.
- */
- void setAttribute(String id, Object obj);
-
- /**
- * Removes attribute with the given name from the context.
- *
- * @param id the attribute name.
- * @return attribute value, or <code>null</code> if not set.
- */
- Object removeAttribute(String id);
-
-}
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/HttpCoreContext.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/HttpCoreContext.java
deleted file mode 100644
index 3d4262751..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/HttpCoreContext.java
+++ /dev/null
@@ -1,152 +0,0 @@
-/*
- * ====================================================================
- * 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.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-
-package ch.boye.httpclientandroidlib.protocol;
-
-import ch.boye.httpclientandroidlib.HttpConnection;
-import ch.boye.httpclientandroidlib.HttpHost;
-import ch.boye.httpclientandroidlib.HttpRequest;
-import ch.boye.httpclientandroidlib.HttpResponse;
-import ch.boye.httpclientandroidlib.annotation.NotThreadSafe;
-import ch.boye.httpclientandroidlib.util.Args;
-
-/**
- * Implementation of {@link HttpContext} that provides convenience
- * setters for user assignable attributes and getter for readable attributes.
- *
- * @since 4.3
- */
-@NotThreadSafe
-public class HttpCoreContext implements HttpContext {
-
- /**
- * Attribute name of a {@link ch.boye.httpclientandroidlib.HttpConnection} object that
- * represents the actual HTTP connection.
- */
- public static final String HTTP_CONNECTION = "http.connection";
-
- /**
- * Attribute name of a {@link ch.boye.httpclientandroidlib.HttpRequest} object that
- * represents the actual HTTP request.
- */
- public static final String HTTP_REQUEST = "http.request";
-
- /**
- * Attribute name of a {@link ch.boye.httpclientandroidlib.HttpResponse} object that
- * represents the actual HTTP response.
- */
- public static final String HTTP_RESPONSE = "http.response";
-
- /**
- * Attribute name of a {@link ch.boye.httpclientandroidlib.HttpHost} object that
- * represents the connection target.
- */
- public static final String HTTP_TARGET_HOST = "http.target_host";
-
- /**
- * Attribute name of a {@link Boolean} object that represents the
- * the flag indicating whether the actual request has been fully transmitted
- * to the target host.
- */
- public static final String HTTP_REQ_SENT = "http.request_sent";
-
- public static HttpCoreContext create() {
- return new HttpCoreContext(new BasicHttpContext());
- }
-
- public static HttpCoreContext adapt(final HttpContext context) {
- Args.notNull(context, "HTTP context");
- if (context instanceof HttpCoreContext) {
- return (HttpCoreContext) context;
- } else {
- return new HttpCoreContext(context);
- }
- }
-
- private final HttpContext context;
-
- public HttpCoreContext(final HttpContext context) {
- super();
- this.context = context;
- }
-
- public HttpCoreContext() {
- super();
- this.context = new BasicHttpContext();
- }
-
- public Object getAttribute(final String id) {
- return context.getAttribute(id);
- }
-
- public void setAttribute(final String id, final Object obj) {
- context.setAttribute(id, obj);
- }
-
- public Object removeAttribute(final String id) {
- return context.removeAttribute(id);
- }
-
- public <T> T getAttribute(final String attribname, final Class<T> clazz) {
- Args.notNull(clazz, "Attribute class");
- final Object obj = getAttribute(attribname);
- if (obj == null) {
- return null;
- }
- return clazz.cast(obj);
- }
-
- public <T extends HttpConnection> T getConnection(final Class<T> clazz) {
- return getAttribute(HTTP_CONNECTION, clazz);
- }
-
- public HttpConnection getConnection() {
- return getAttribute(HTTP_CONNECTION, HttpConnection.class);
- }
-
- public HttpRequest getRequest() {
- return getAttribute(HTTP_REQUEST, HttpRequest.class);
- }
-
- public boolean isRequestSent() {
- final Boolean b = getAttribute(HTTP_REQ_SENT, Boolean.class);
- return b != null && b.booleanValue();
- }
-
- public HttpResponse getResponse() {
- return getAttribute(HTTP_RESPONSE, HttpResponse.class);
- }
-
- public void setTargetHost(final HttpHost host) {
- setAttribute(HTTP_TARGET_HOST, host);
- }
-
- public HttpHost getTargetHost() {
- return getAttribute(HTTP_TARGET_HOST, HttpHost.class);
- }
-
-}
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/HttpDateGenerator.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/HttpDateGenerator.java
deleted file mode 100644
index 8e99c1ea2..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/HttpDateGenerator.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * ====================================================================
- * 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.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-
-package ch.boye.httpclientandroidlib.protocol;
-
-import java.text.DateFormat;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.Locale;
-import java.util.TimeZone;
-
-import ch.boye.httpclientandroidlib.annotation.GuardedBy;
-import ch.boye.httpclientandroidlib.annotation.ThreadSafe;
-
-/**
- * Generates a date in the format required by the HTTP protocol.
- *
- * @since 4.0
- */
-@ThreadSafe
-public class HttpDateGenerator {
-
- /** Date format pattern used to generate the header in RFC 1123 format. */
- public static final
- String PATTERN_RFC1123 = "EEE, dd MMM yyyy HH:mm:ss zzz";
-
- /** The time zone to use in the date header. */
- public static final TimeZone GMT = TimeZone.getTimeZone("GMT");
-
- @GuardedBy("this")
- private final DateFormat dateformat;
- @GuardedBy("this")
- private long dateAsLong = 0L;
- @GuardedBy("this")
- private String dateAsText = null;
-
- public HttpDateGenerator() {
- super();
- this.dateformat = new SimpleDateFormat(PATTERN_RFC1123, Locale.US);
- this.dateformat.setTimeZone(GMT);
- }
-
- public synchronized String getCurrentDate() {
- final long now = System.currentTimeMillis();
- if (now - this.dateAsLong > 1000) {
- // Generate new date string
- this.dateAsText = this.dateformat.format(new Date(now));
- this.dateAsLong = now;
- }
- return this.dateAsText;
- }
-
-}
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/HttpExpectationVerifier.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/HttpExpectationVerifier.java
deleted file mode 100644
index 105704616..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/HttpExpectationVerifier.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * ====================================================================
- * 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.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-
-package ch.boye.httpclientandroidlib.protocol;
-
-import ch.boye.httpclientandroidlib.HttpException;
-import ch.boye.httpclientandroidlib.HttpRequest;
-import ch.boye.httpclientandroidlib.HttpResponse;
-
-/**
- * Defines an interface to verify whether an incoming HTTP request meets
- * the target server's expectations.
- *<p>
- * The Expect request-header field is used to indicate that particular
- * server behaviors are required by the client.
- *</p>
- *<pre>
- * Expect = "Expect" ":" 1#expectation
- *
- * expectation = "100-continue" | expectation-extension
- * expectation-extension = token [ "=" ( token | quoted-string )
- * *expect-params ]
- * expect-params = ";" token [ "=" ( token | quoted-string ) ]
- *</pre>
- *<p>
- * A server that does not understand or is unable to comply with any of
- * the expectation values in the Expect field of a request MUST respond
- * with appropriate error status. The server MUST respond with a 417
- * (Expectation Failed) status if any of the expectations cannot be met
- * or, if there are other problems with the request, some other 4xx
- * status.
- *</p>
- *
- * @since 4.0
- */
-public interface HttpExpectationVerifier {
-
- /**
- * Verifies whether the given request meets the server's expectations.
- * <p>
- * If the request fails to meet particular criteria, this method can
- * trigger a terminal response back to the client by setting the status
- * code of the response object to a value greater or equal to
- * <code>200</code>. In this case the client will not have to transmit
- * the request body. If the request meets expectations this method can
- * terminate without modifying the response object. Per default the status
- * code of the response object will be set to <code>100</code>.
- *
- * @param request the HTTP request.
- * @param response the HTTP response.
- * @param context the HTTP context.
- * @throws HttpException in case of an HTTP protocol violation.
- */
- void verify(HttpRequest request, HttpResponse response, HttpContext context)
- throws HttpException;
-
-}
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/HttpProcessor.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/HttpProcessor.java
deleted file mode 100644
index e4dac6795..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/HttpProcessor.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * ====================================================================
- * 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.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-
-package ch.boye.httpclientandroidlib.protocol;
-
-import ch.boye.httpclientandroidlib.HttpRequestInterceptor;
-import ch.boye.httpclientandroidlib.HttpResponseInterceptor;
-
-/**
- * HTTP protocol processor is a collection of protocol interceptors that
- * implements the 'Chain of Responsibility' pattern, where each individual
- * protocol interceptor is expected to work on a particular aspect of the HTTP
- * protocol the interceptor is responsible for.
- * <p>
- * Usually the order in which interceptors are executed should not matter as
- * long as they do not depend on a particular state of the execution context.
- * If protocol interceptors have interdependencies and therefore must be
- * executed in a particular order, they should be added to the protocol
- * processor in the same sequence as their expected execution order.
- * <p>
- * Protocol interceptors must be implemented as thread-safe. Similarly to
- * servlets, protocol interceptors should not use instance variables unless
- * access to those variables is synchronized.
- *
- * @since 4.0
- */
-public interface HttpProcessor
- extends HttpRequestInterceptor, HttpResponseInterceptor {
-
- // no additional methods
-}
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/HttpProcessorBuilder.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/HttpProcessorBuilder.java
deleted file mode 100644
index 29dfccd60..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/HttpProcessorBuilder.java
+++ /dev/null
@@ -1,151 +0,0 @@
-/*
- * ====================================================================
- * 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.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-
-package ch.boye.httpclientandroidlib.protocol;
-
-import ch.boye.httpclientandroidlib.HttpRequestInterceptor;
-import ch.boye.httpclientandroidlib.HttpResponseInterceptor;
-
-/**
- * Builder for {@link HttpProcessor} instances.
- *
- * @since 4.3
- */
-public class HttpProcessorBuilder {
-
- private ChainBuilder<HttpRequestInterceptor> requestChainBuilder;
- private ChainBuilder<HttpResponseInterceptor> responseChainBuilder;
-
- public static HttpProcessorBuilder create() {
- return new HttpProcessorBuilder();
- }
-
- HttpProcessorBuilder() {
- super();
- }
-
- private ChainBuilder<HttpRequestInterceptor> getRequestChainBuilder() {
- if (requestChainBuilder == null) {
- requestChainBuilder = new ChainBuilder<HttpRequestInterceptor>();
- }
- return requestChainBuilder;
- }
-
- private ChainBuilder<HttpResponseInterceptor> getResponseChainBuilder() {
- if (responseChainBuilder == null) {
- responseChainBuilder = new ChainBuilder<HttpResponseInterceptor>();
- }
- return responseChainBuilder;
- }
-
- public HttpProcessorBuilder addFirst(final HttpRequestInterceptor e) {
- if (e == null) {
- return this;
- }
- getRequestChainBuilder().addFirst(e);
- return this;
- }
-
- public HttpProcessorBuilder addLast(final HttpRequestInterceptor e) {
- if (e == null) {
- return this;
- }
- getRequestChainBuilder().addLast(e);
- return this;
- }
-
- public HttpProcessorBuilder add(final HttpRequestInterceptor e) {
- return addLast(e);
- }
-
- public HttpProcessorBuilder addAllFirst(final HttpRequestInterceptor... e) {
- if (e == null) {
- return this;
- }
- getRequestChainBuilder().addAllFirst(e);
- return this;
- }
-
- public HttpProcessorBuilder addAllLast(final HttpRequestInterceptor... e) {
- if (e == null) {
- return this;
- }
- getRequestChainBuilder().addAllLast(e);
- return this;
- }
-
- public HttpProcessorBuilder addAll(final HttpRequestInterceptor... e) {
- return addAllLast(e);
- }
-
- public HttpProcessorBuilder addFirst(final HttpResponseInterceptor e) {
- if (e == null) {
- return this;
- }
- getResponseChainBuilder().addFirst(e);
- return this;
- }
-
- public HttpProcessorBuilder addLast(final HttpResponseInterceptor e) {
- if (e == null) {
- return this;
- }
- getResponseChainBuilder().addLast(e);
- return this;
- }
-
- public HttpProcessorBuilder add(final HttpResponseInterceptor e) {
- return addLast(e);
- }
-
- public HttpProcessorBuilder addAllFirst(final HttpResponseInterceptor... e) {
- if (e == null) {
- return this;
- }
- getResponseChainBuilder().addAllFirst(e);
- return this;
- }
-
- public HttpProcessorBuilder addAllLast(final HttpResponseInterceptor... e) {
- if (e == null) {
- return this;
- }
- getResponseChainBuilder().addAllLast(e);
- return this;
- }
-
- public HttpProcessorBuilder addAll(final HttpResponseInterceptor... e) {
- return addAllLast(e);
- }
-
- public HttpProcessor build() {
- return new ImmutableHttpProcessor(
- requestChainBuilder != null ? requestChainBuilder.build() : null,
- responseChainBuilder != null ? responseChainBuilder.build() : null);
- }
-
-}
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/HttpRequestExecutor.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/HttpRequestExecutor.java
deleted file mode 100644
index d895f0420..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/HttpRequestExecutor.java
+++ /dev/null
@@ -1,311 +0,0 @@
-/*
- * ====================================================================
- * 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.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-
-package ch.boye.httpclientandroidlib.protocol;
-
-import java.io.IOException;
-
-import ch.boye.httpclientandroidlib.HttpClientConnection;
-import ch.boye.httpclientandroidlib.HttpEntityEnclosingRequest;
-import ch.boye.httpclientandroidlib.HttpException;
-import ch.boye.httpclientandroidlib.HttpRequest;
-import ch.boye.httpclientandroidlib.HttpResponse;
-import ch.boye.httpclientandroidlib.HttpStatus;
-import ch.boye.httpclientandroidlib.HttpVersion;
-import ch.boye.httpclientandroidlib.ProtocolException;
-import ch.boye.httpclientandroidlib.ProtocolVersion;
-import ch.boye.httpclientandroidlib.annotation.Immutable;
-import ch.boye.httpclientandroidlib.util.Args;
-
-/**
- * <tt>HttpRequestExecutor</tt> is a client side HTTP protocol handler based
- * on the blocking (classic) I/O model.
- * <p/>
- * <tt>HttpRequestExecutor</tt> relies on {@link HttpProcessor} to generate
- * mandatory protocol headers for all outgoing messages and apply common,
- * cross-cutting message transformations to all incoming and outgoing messages.
- * Application specific processing can be implemented outside
- * <tt>HttpRequestExecutor</tt> once the request has been executed and
- * a response has been received.
- *
- * @since 4.0
- */
-@Immutable
-public class HttpRequestExecutor {
-
- public static final int DEFAULT_WAIT_FOR_CONTINUE = 3000;
-
- private final int waitForContinue;
-
- /**
- * Creates new instance of HttpRequestExecutor.
- *
- * @since 4.3
- */
- public HttpRequestExecutor(final int waitForContinue) {
- super();
- this.waitForContinue = Args.positive(waitForContinue, "Wait for continue time");
- }
-
- public HttpRequestExecutor() {
- this(DEFAULT_WAIT_FOR_CONTINUE);
- }
-
- /**
- * Decide whether a response comes with an entity.
- * The implementation in this class is based on RFC 2616.
- * <br/>
- * Derived executors can override this method to handle
- * methods and response codes not specified in RFC 2616.
- *
- * @param request the request, to obtain the executed method
- * @param response the response, to obtain the status code
- */
- protected boolean canResponseHaveBody(final HttpRequest request,
- final HttpResponse response) {
-
- if ("HEAD".equalsIgnoreCase(request.getRequestLine().getMethod())) {
- return false;
- }
- final int status = response.getStatusLine().getStatusCode();
- return status >= HttpStatus.SC_OK
- && status != HttpStatus.SC_NO_CONTENT
- && status != HttpStatus.SC_NOT_MODIFIED
- && status != HttpStatus.SC_RESET_CONTENT;
- }
-
- /**
- * Sends the request and obtain a response.
- *
- * @param request the request to execute.
- * @param conn the connection over which to execute the request.
- *
- * @return the response to the request.
- *
- * @throws IOException in case of an I/O error.
- * @throws HttpException in case of HTTP protocol violation or a processing
- * problem.
- */
- public HttpResponse execute(
- final HttpRequest request,
- final HttpClientConnection conn,
- final HttpContext context) throws IOException, HttpException {
- Args.notNull(request, "HTTP request");
- Args.notNull(conn, "Client connection");
- Args.notNull(context, "HTTP context");
- try {
- HttpResponse response = doSendRequest(request, conn, context);
- if (response == null) {
- response = doReceiveResponse(request, conn, context);
- }
- return response;
- } catch (final IOException ex) {
- closeConnection(conn);
- throw ex;
- } catch (final HttpException ex) {
- closeConnection(conn);
- throw ex;
- } catch (final RuntimeException ex) {
- closeConnection(conn);
- throw ex;
- }
- }
-
- private static void closeConnection(final HttpClientConnection conn) {
- try {
- conn.close();
- } catch (final IOException ignore) {
- }
- }
-
- /**
- * Pre-process the given request using the given protocol processor and
- * initiates the process of request execution.
- *
- * @param request the request to prepare
- * @param processor the processor to use
- * @param context the context for sending the request
- *
- * @throws IOException in case of an I/O error.
- * @throws HttpException in case of HTTP protocol violation or a processing
- * problem.
- */
- public void preProcess(
- final HttpRequest request,
- final HttpProcessor processor,
- final HttpContext context) throws HttpException, IOException {
- Args.notNull(request, "HTTP request");
- Args.notNull(processor, "HTTP processor");
- Args.notNull(context, "HTTP context");
- context.setAttribute(HttpCoreContext.HTTP_REQUEST, request);
- processor.process(request, context);
- }
-
- /**
- * Send the given request over the given connection.
- * <p>
- * This method also handles the expect-continue handshake if necessary.
- * If it does not have to handle an expect-continue handshake, it will
- * not use the connection for reading or anything else that depends on
- * data coming in over the connection.
- *
- * @param request the request to send, already
- * {@link #preProcess preprocessed}
- * @param conn the connection over which to send the request,
- * already established
- * @param context the context for sending the request
- *
- * @return a terminal response received as part of an expect-continue
- * handshake, or
- * <code>null</code> if the expect-continue handshake is not used
- *
- * @throws IOException in case of an I/O error.
- * @throws HttpException in case of HTTP protocol violation or a processing
- * problem.
- */
- protected HttpResponse doSendRequest(
- final HttpRequest request,
- final HttpClientConnection conn,
- final HttpContext context) throws IOException, HttpException {
- Args.notNull(request, "HTTP request");
- Args.notNull(conn, "Client connection");
- Args.notNull(context, "HTTP context");
-
- HttpResponse response = null;
-
- context.setAttribute(HttpCoreContext.HTTP_CONNECTION, conn);
- context.setAttribute(HttpCoreContext.HTTP_REQ_SENT, Boolean.FALSE);
-
- conn.sendRequestHeader(request);
- if (request instanceof HttpEntityEnclosingRequest) {
- // Check for expect-continue handshake. We have to flush the
- // headers and wait for an 100-continue response to handle it.
- // If we get a different response, we must not send the entity.
- boolean sendentity = true;
- final ProtocolVersion ver =
- request.getRequestLine().getProtocolVersion();
- if (((HttpEntityEnclosingRequest) request).expectContinue() &&
- !ver.lessEquals(HttpVersion.HTTP_1_0)) {
-
- conn.flush();
- // As suggested by RFC 2616 section 8.2.3, we don't wait for a
- // 100-continue response forever. On timeout, send the entity.
- if (conn.isResponseAvailable(this.waitForContinue)) {
- response = conn.receiveResponseHeader();
- if (canResponseHaveBody(request, response)) {
- conn.receiveResponseEntity(response);
- }
- final int status = response.getStatusLine().getStatusCode();
- if (status < 200) {
- if (status != HttpStatus.SC_CONTINUE) {
- throw new ProtocolException(
- "Unexpected response: " + response.getStatusLine());
- }
- // discard 100-continue
- response = null;
- } else {
- sendentity = false;
- }
- }
- }
- if (sendentity) {
- conn.sendRequestEntity((HttpEntityEnclosingRequest) request);
- }
- }
- conn.flush();
- context.setAttribute(HttpCoreContext.HTTP_REQ_SENT, Boolean.TRUE);
- return response;
- }
-
- /**
- * Waits for and receives a response.
- * This method will automatically ignore intermediate responses
- * with status code 1xx.
- *
- * @param request the request for which to obtain the response
- * @param conn the connection over which the request was sent
- * @param context the context for receiving the response
- *
- * @return the terminal response, not yet post-processed
- *
- * @throws IOException in case of an I/O error.
- * @throws HttpException in case of HTTP protocol violation or a processing
- * problem.
- */
- protected HttpResponse doReceiveResponse(
- final HttpRequest request,
- final HttpClientConnection conn,
- final HttpContext context) throws HttpException, IOException {
- Args.notNull(request, "HTTP request");
- Args.notNull(conn, "Client connection");
- Args.notNull(context, "HTTP context");
- HttpResponse response = null;
- int statusCode = 0;
-
- while (response == null || statusCode < HttpStatus.SC_OK) {
-
- response = conn.receiveResponseHeader();
- if (canResponseHaveBody(request, response)) {
- conn.receiveResponseEntity(response);
- }
- statusCode = response.getStatusLine().getStatusCode();
-
- } // while intermediate response
-
- return response;
- }
-
- /**
- * Post-processes the given response using the given protocol processor and
- * completes the process of request execution.
- * <p>
- * This method does <i>not</i> read the response entity, if any.
- * The connection over which content of the response entity is being
- * streamed from cannot be reused until
- * {@link ch.boye.httpclientandroidlib.util.EntityUtils#consume(ch.boye.httpclientandroidlib.HttpEntity)}
- * has been invoked.
- *
- * @param response the response object to post-process
- * @param processor the processor to use
- * @param context the context for post-processing the response
- *
- * @throws IOException in case of an I/O error.
- * @throws HttpException in case of HTTP protocol violation or a processing
- * problem.
- */
- public void postProcess(
- final HttpResponse response,
- final HttpProcessor processor,
- final HttpContext context) throws HttpException, IOException {
- Args.notNull(response, "HTTP response");
- Args.notNull(processor, "HTTP processor");
- Args.notNull(context, "HTTP context");
- context.setAttribute(HttpCoreContext.HTTP_RESPONSE, response);
- processor.process(response, context);
- }
-
-} // class HttpRequestExecutor
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/HttpRequestHandler.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/HttpRequestHandler.java
deleted file mode 100644
index b948ae65d..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/HttpRequestHandler.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * ====================================================================
- * 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.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-
-package ch.boye.httpclientandroidlib.protocol;
-
-import java.io.IOException;
-
-import ch.boye.httpclientandroidlib.HttpException;
-import ch.boye.httpclientandroidlib.HttpRequest;
-import ch.boye.httpclientandroidlib.HttpResponse;
-
-/**
- * HttpRequestHandler represents a routine for processing of a specific group
- * of HTTP requests. Protocol handlers are designed to take care of protocol
- * specific aspects, whereas individual request handlers are expected to take
- * care of application specific HTTP processing. The main purpose of a request
- * handler is to generate a response object with a content entity to be sent
- * back to the client in response to the given request
- *
- * @since 4.0
- */
-public interface HttpRequestHandler {
-
- /**
- * Handles the request and produces a response to be sent back to
- * the client.
- *
- * @param request the HTTP request.
- * @param response the HTTP response.
- * @param context the HTTP execution context.
- * @throws IOException in case of an I/O error.
- * @throws HttpException in case of HTTP protocol violation or a processing
- * problem.
- */
- void handle(HttpRequest request, HttpResponse response, HttpContext context)
- throws HttpException, IOException;
-
-}
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/HttpRequestHandlerMapper.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/HttpRequestHandlerMapper.java
deleted file mode 100644
index e97da4e88..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/HttpRequestHandlerMapper.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * ====================================================================
- * 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.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-
-package ch.boye.httpclientandroidlib.protocol;
-
-import ch.boye.httpclientandroidlib.HttpRequest;
-
-/**
- * HttpRequestHandlerMapper can be used to resolve an instance of
- * {@link HttpRequestHandler} matching a particular {@link HttpRequest}. Usually the
- * mapped request handler will be used to process the request.
- *
- * @since 4.3
- */
-public interface HttpRequestHandlerMapper {
-
- /**
- * Looks up a handler matching the given request.
- *
- * @param request the request to map to a handler
- * @return HTTP request handler or <code>null</code> if no match
- * is found.
- */
- HttpRequestHandler lookup(HttpRequest request);
-
-}
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/HttpRequestHandlerRegistry.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/HttpRequestHandlerRegistry.java
deleted file mode 100644
index 3592d00ac..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/HttpRequestHandlerRegistry.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/*
- * ====================================================================
- * 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.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-
-package ch.boye.httpclientandroidlib.protocol;
-
-import java.util.Map;
-
-import ch.boye.httpclientandroidlib.annotation.ThreadSafe;
-import ch.boye.httpclientandroidlib.util.Args;
-
-/**
- * Maintains a map of HTTP request handlers keyed by a request URI pattern.
- * <br>
- * Patterns may have three formats:
- * <ul>
- * <li><code>*</code></li>
- * <li><code>*&lt;uri&gt;</code></li>
- * <li><code>&lt;uri&gt;*</code></li>
- * </ul>
- * <br>
- * This class can be used to resolve an instance of
- * {@link HttpRequestHandler} matching a particular request URI. Usually the
- * resolved request handler will be used to process the request with the
- * specified request URI.
- *
- * @since 4.0
- * @deprecated (4.3) use {@link UriHttpRequestHandlerMapper}
- */
-@ThreadSafe // provided injected dependencies are thread-safe
-@Deprecated
-public class HttpRequestHandlerRegistry implements HttpRequestHandlerResolver {
-
- private final UriPatternMatcher<HttpRequestHandler> matcher;
-
- public HttpRequestHandlerRegistry() {
- matcher = new UriPatternMatcher<HttpRequestHandler>();
- }
-
- /**
- * Registers the given {@link HttpRequestHandler} as a handler for URIs
- * matching the given pattern.
- *
- * @param pattern the pattern to register the handler for.
- * @param handler the handler.
- */
- public void register(final String pattern, final HttpRequestHandler handler) {
- Args.notNull(pattern, "URI request pattern");
- Args.notNull(handler, "Request handler");
- matcher.register(pattern, handler);
- }
-
- /**
- * Removes registered handler, if exists, for the given pattern.
- *
- * @param pattern the pattern to unregister the handler for.
- */
- public void unregister(final String pattern) {
- matcher.unregister(pattern);
- }
-
- /**
- * Sets handlers from the given map.
- * @param map the map containing handlers keyed by their URI patterns.
- */
- public void setHandlers(final Map<String, HttpRequestHandler> map) {
- matcher.setObjects(map);
- }
-
- /**
- * Get the handler map.
- * @return The map of handlers and their associated URI patterns.
- *
- * @since 4.2
- */
- public Map<String, HttpRequestHandler> getHandlers() {
- return matcher.getObjects();
- }
-
- public HttpRequestHandler lookup(final String requestURI) {
- return matcher.lookup(requestURI);
- }
-
-}
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/HttpRequestHandlerResolver.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/HttpRequestHandlerResolver.java
deleted file mode 100644
index a898b8d18..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/HttpRequestHandlerResolver.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * ====================================================================
- * 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.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-
-package ch.boye.httpclientandroidlib.protocol;
-
-/**
- * HttpRequestHandlerResolver can be used to resolve an instance of
- * {@link HttpRequestHandler} matching a particular request URI. Usually the
- * mapped request handler will be used to process the request with the
- * specified request URI.
- *
- * @since 4.0
- * @deprecated see {@link HttpRequestHandlerMapper}
- */
-@Deprecated
-public interface HttpRequestHandlerResolver {
-
- /**
- * Looks up a handler matching the given request URI.
- *
- * @param requestURI the request URI
- * @return HTTP request handler or <code>null</code> if no match
- * is found.
- */
- HttpRequestHandler lookup(String requestURI);
-
-}
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/HttpRequestInterceptorList.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/HttpRequestInterceptorList.java
deleted file mode 100644
index da4fd6f86..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/HttpRequestInterceptorList.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/*
- * ====================================================================
- * 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.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-
-package ch.boye.httpclientandroidlib.protocol;
-
-import java.util.List;
-
-import ch.boye.httpclientandroidlib.HttpRequestInterceptor;
-
-/**
- * Provides access to an ordered list of request interceptors.
- * Lists are expected to be built upfront and used read-only afterwards
- * for {@link HttpProcessor processing}.
- *
- * @since 4.0
- *
- * @deprecated (4.3)
- */
-@Deprecated
-public interface HttpRequestInterceptorList {
-
- /**
- * Appends a request interceptor to this list.
- *
- * @param interceptor the request interceptor to add
- */
- void addRequestInterceptor(HttpRequestInterceptor interceptor);
-
- /**
- * Inserts a request interceptor at the specified index.
- *
- * @param interceptor the request interceptor to add
- * @param index the index to insert the interceptor at
- */
- void addRequestInterceptor(HttpRequestInterceptor interceptor, int index);
-
- /**
- * Obtains the current size of this list.
- *
- * @return the number of request interceptors in this list
- */
- int getRequestInterceptorCount();
-
- /**
- * Obtains a request interceptor from this list.
- *
- * @param index the index of the interceptor to obtain,
- * 0 for first
- *
- * @return the interceptor at the given index, or
- * <code>null</code> if the index is out of range
- */
- HttpRequestInterceptor getRequestInterceptor(int index);
-
- /**
- * Removes all request interceptors from this list.
- */
- void clearRequestInterceptors();
-
- /**
- * Removes all request interceptor of the specified class
- *
- * @param clazz the class of the instances to be removed.
- */
- void removeRequestInterceptorByClass(Class<? extends HttpRequestInterceptor> clazz);
-
- /**
- * Sets the request interceptors in this list.
- * This list will be cleared and re-initialized to contain
- * all request interceptors from the argument list.
- * If the argument list includes elements that are not request
- * interceptors, the behavior is implementation dependent.
- *
- * @param list the list of request interceptors
- */
- void setInterceptors(List<?> list);
-
-}
-
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/HttpResponseInterceptorList.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/HttpResponseInterceptorList.java
deleted file mode 100644
index 9265b6738..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/HttpResponseInterceptorList.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/*
- * ====================================================================
- * 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.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-
-package ch.boye.httpclientandroidlib.protocol;
-
-import java.util.List;
-
-import ch.boye.httpclientandroidlib.HttpResponseInterceptor;
-
-/**
- * Provides access to an ordered list of response interceptors.
- * Lists are expected to be built upfront and used read-only afterwards
- * for {@link HttpProcessor processing}.
- *
- * @since 4.0
- *
- * @deprecated (4.3)
- */
-@Deprecated
-public interface HttpResponseInterceptorList {
-
- /**
- * Appends a response interceptor to this list.
- *
- * @param interceptor the response interceptor to add
- */
- void addResponseInterceptor(HttpResponseInterceptor interceptor);
-
- /**
- * Inserts a response interceptor at the specified index.
- *
- * @param interceptor the response interceptor to add
- * @param index the index to insert the interceptor at
- */
- void addResponseInterceptor(HttpResponseInterceptor interceptor, int index);
-
- /**
- * Obtains the current size of this list.
- *
- * @return the number of response interceptors in this list
- */
- int getResponseInterceptorCount();
-
- /**
- * Obtains a response interceptor from this list.
- *
- * @param index the index of the interceptor to obtain,
- * 0 for first
- *
- * @return the interceptor at the given index, or
- * <code>null</code> if the index is out of range
- */
- HttpResponseInterceptor getResponseInterceptor(int index);
-
- /**
- * Removes all response interceptors from this list.
- */
- void clearResponseInterceptors();
-
- /**
- * Removes all response interceptor of the specified class
- *
- * @param clazz the class of the instances to be removed.
- */
- void removeResponseInterceptorByClass(Class<? extends HttpResponseInterceptor> clazz);
-
- /**
- * Sets the response interceptors in this list.
- * This list will be cleared and re-initialized to contain
- * all response interceptors from the argument list.
- * If the argument list includes elements that are not response
- * interceptors, the behavior is implementation dependent.
- *
- * @param list the list of response interceptors
- */
- void setInterceptors(List<?> list);
-
-}
-
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/HttpService.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/HttpService.java
deleted file mode 100644
index 13defa2d9..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/HttpService.java
+++ /dev/null
@@ -1,447 +0,0 @@
-/*
- * ====================================================================
- * 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.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-
-package ch.boye.httpclientandroidlib.protocol;
-
-import java.io.IOException;
-
-import ch.boye.httpclientandroidlib.ConnectionReuseStrategy;
-import ch.boye.httpclientandroidlib.HttpEntity;
-import ch.boye.httpclientandroidlib.HttpEntityEnclosingRequest;
-import ch.boye.httpclientandroidlib.HttpException;
-import ch.boye.httpclientandroidlib.HttpRequest;
-import ch.boye.httpclientandroidlib.HttpResponse;
-import ch.boye.httpclientandroidlib.HttpResponseFactory;
-import ch.boye.httpclientandroidlib.HttpServerConnection;
-import ch.boye.httpclientandroidlib.HttpStatus;
-import ch.boye.httpclientandroidlib.HttpVersion;
-import ch.boye.httpclientandroidlib.MethodNotSupportedException;
-import ch.boye.httpclientandroidlib.ProtocolException;
-import ch.boye.httpclientandroidlib.UnsupportedHttpVersionException;
-import ch.boye.httpclientandroidlib.annotation.Immutable;
-import ch.boye.httpclientandroidlib.entity.ByteArrayEntity;
-import ch.boye.httpclientandroidlib.impl.DefaultConnectionReuseStrategy;
-import ch.boye.httpclientandroidlib.impl.DefaultHttpResponseFactory;
-import ch.boye.httpclientandroidlib.params.HttpParams;
-import ch.boye.httpclientandroidlib.util.Args;
-import ch.boye.httpclientandroidlib.util.EncodingUtils;
-import ch.boye.httpclientandroidlib.util.EntityUtils;
-
-/**
- * <tt>HttpService</tt> is a server side HTTP protocol handler based on
- * the classic (blocking) I/O model.
- * <p/>
- * <tt>HttpService</tt> relies on {@link HttpProcessor} to generate mandatory
- * protocol headers for all outgoing messages and apply common, cross-cutting
- * message transformations to all incoming and outgoing messages, whereas
- * individual {@link HttpRequestHandler}s are expected to implement
- * application specific content generation and processing.
- * <p/>
- * <tt>HttpService</tt> uses {@link HttpRequestHandlerMapper} to map
- * matching request handler for a particular request URI of an incoming HTTP
- * request.
- * <p/>
- * <tt>HttpService</tt> can use optional {@link HttpExpectationVerifier}
- * to ensure that incoming requests meet server's expectations.
- *
- * @since 4.0
- */
-@SuppressWarnings("deprecation")
-@Immutable // provided injected dependencies are immutable and deprecated methods are not used
-public class HttpService {
-
- /**
- * TODO: make all variables final in the next major version
- */
- private volatile HttpParams params = null;
- private volatile HttpProcessor processor = null;
- private volatile HttpRequestHandlerMapper handlerMapper = null;
- private volatile ConnectionReuseStrategy connStrategy = null;
- private volatile HttpResponseFactory responseFactory = null;
- private volatile HttpExpectationVerifier expectationVerifier = null;
-
- /**
- * Create a new HTTP service.
- *
- * @param processor the processor to use on requests and responses
- * @param connStrategy the connection reuse strategy
- * @param responseFactory the response factory
- * @param handlerResolver the handler resolver. May be null.
- * @param expectationVerifier the expectation verifier. May be null.
- * @param params the HTTP parameters
- *
- * @since 4.1
- * @deprecated (4.3) use {@link HttpService#HttpService(HttpProcessor, ConnectionReuseStrategy,
- * HttpResponseFactory, HttpRequestHandlerMapper, HttpExpectationVerifier)}
- */
- @Deprecated
- public HttpService(
- final HttpProcessor processor,
- final ConnectionReuseStrategy connStrategy,
- final HttpResponseFactory responseFactory,
- final HttpRequestHandlerResolver handlerResolver,
- final HttpExpectationVerifier expectationVerifier,
- final HttpParams params) {
- this(processor,
- connStrategy,
- responseFactory,
- new HttpRequestHandlerResolverAdapter(handlerResolver),
- expectationVerifier);
- this.params = params;
- }
-
- /**
- * Create a new HTTP service.
- *
- * @param processor the processor to use on requests and responses
- * @param connStrategy the connection reuse strategy
- * @param responseFactory the response factory
- * @param handlerResolver the handler resolver. May be null.
- * @param params the HTTP parameters
- *
- * @since 4.1
- * @deprecated (4.3) use {@link HttpService#HttpService(HttpProcessor, ConnectionReuseStrategy,
- * HttpResponseFactory, HttpRequestHandlerMapper)}
- */
- @Deprecated
- public HttpService(
- final HttpProcessor processor,
- final ConnectionReuseStrategy connStrategy,
- final HttpResponseFactory responseFactory,
- final HttpRequestHandlerResolver handlerResolver,
- final HttpParams params) {
- this(processor,
- connStrategy,
- responseFactory,
- new HttpRequestHandlerResolverAdapter(handlerResolver),
- null);
- this.params = params;
- }
-
- /**
- * Create a new HTTP service.
- *
- * @param proc the processor to use on requests and responses
- * @param connStrategy the connection reuse strategy
- * @param responseFactory the response factory
- *
- * @deprecated (4.1) use {@link HttpService#HttpService(HttpProcessor,
- * ConnectionReuseStrategy, HttpResponseFactory, HttpRequestHandlerResolver, HttpParams)}
- */
- @Deprecated
- public HttpService(
- final HttpProcessor proc,
- final ConnectionReuseStrategy connStrategy,
- final HttpResponseFactory responseFactory) {
- super();
- setHttpProcessor(proc);
- setConnReuseStrategy(connStrategy);
- setResponseFactory(responseFactory);
- }
-
- /**
- * Create a new HTTP service.
- *
- * @param processor the processor to use on requests and responses
- * @param connStrategy the connection reuse strategy. If <code>null</code>
- * {@link DefaultConnectionReuseStrategy#INSTANCE} will be used.
- * @param responseFactory the response factory. If <code>null</code>
- * {@link DefaultHttpResponseFactory#INSTANCE} will be used.
- * @param handlerMapper the handler mapper. May be null.
- * @param expectationVerifier the expectation verifier. May be null.
- *
- * @since 4.3
- */
- public HttpService(
- final HttpProcessor processor,
- final ConnectionReuseStrategy connStrategy,
- final HttpResponseFactory responseFactory,
- final HttpRequestHandlerMapper handlerMapper,
- final HttpExpectationVerifier expectationVerifier) {
- super();
- this.processor = Args.notNull(processor, "HTTP processor");
- this.connStrategy = connStrategy != null ? connStrategy :
- DefaultConnectionReuseStrategy.INSTANCE;
- this.responseFactory = responseFactory != null ? responseFactory :
- DefaultHttpResponseFactory.INSTANCE;
- this.handlerMapper = handlerMapper;
- this.expectationVerifier = expectationVerifier;
- }
-
- /**
- * Create a new HTTP service.
- *
- * @param processor the processor to use on requests and responses
- * @param connStrategy the connection reuse strategy. If <code>null</code>
- * {@link DefaultConnectionReuseStrategy#INSTANCE} will be used.
- * @param responseFactory the response factory. If <code>null</code>
- * {@link DefaultHttpResponseFactory#INSTANCE} will be used.
- * @param handlerMapper the handler mapper. May be null.
- *
- * @since 4.3
- */
- public HttpService(
- final HttpProcessor processor,
- final ConnectionReuseStrategy connStrategy,
- final HttpResponseFactory responseFactory,
- final HttpRequestHandlerMapper handlerMapper) {
- this(processor, connStrategy, responseFactory, handlerMapper, null);
- }
-
- /**
- * Create a new HTTP service.
- *
- * @param processor the processor to use on requests and responses
- * @param handlerMapper the handler mapper. May be null.
- *
- * @since 4.3
- */
- public HttpService(
- final HttpProcessor processor, final HttpRequestHandlerMapper handlerMapper) {
- this(processor, null, null, handlerMapper, null);
- }
-
- /**
- * @deprecated (4.1) set {@link HttpProcessor} using constructor
- */
- @Deprecated
- public void setHttpProcessor(final HttpProcessor processor) {
- Args.notNull(processor, "HTTP processor");
- this.processor = processor;
- }
-
- /**
- * @deprecated (4.1) set {@link ConnectionReuseStrategy} using constructor
- */
- @Deprecated
- public void setConnReuseStrategy(final ConnectionReuseStrategy connStrategy) {
- Args.notNull(connStrategy, "Connection reuse strategy");
- this.connStrategy = connStrategy;
- }
-
- /**
- * @deprecated (4.1) set {@link HttpResponseFactory} using constructor
- */
- @Deprecated
- public void setResponseFactory(final HttpResponseFactory responseFactory) {
- Args.notNull(responseFactory, "Response factory");
- this.responseFactory = responseFactory;
- }
-
- /**
- * @deprecated (4.1) set {@link HttpResponseFactory} using constructor
- */
- @Deprecated
- public void setParams(final HttpParams params) {
- this.params = params;
- }
-
- /**
- * @deprecated (4.1) set {@link HttpRequestHandlerResolver} using constructor
- */
- @Deprecated
- public void setHandlerResolver(final HttpRequestHandlerResolver handlerResolver) {
- this.handlerMapper = new HttpRequestHandlerResolverAdapter(handlerResolver);
- }
-
- /**
- * @deprecated (4.1) set {@link HttpExpectationVerifier} using constructor
- */
- @Deprecated
- public void setExpectationVerifier(final HttpExpectationVerifier expectationVerifier) {
- this.expectationVerifier = expectationVerifier;
- }
-
- /**
- * @deprecated (4.3) no longer used.
- */
- @Deprecated
- public HttpParams getParams() {
- return this.params;
- }
-
- /**
- * Handles receives one HTTP request over the given connection within the
- * given execution context and sends a response back to the client.
- *
- * @param conn the active connection to the client
- * @param context the actual execution context.
- * @throws IOException in case of an I/O error.
- * @throws HttpException in case of HTTP protocol violation or a processing
- * problem.
- */
- public void handleRequest(
- final HttpServerConnection conn,
- final HttpContext context) throws IOException, HttpException {
-
- context.setAttribute(HttpCoreContext.HTTP_CONNECTION, conn);
-
- HttpResponse response = null;
-
- try {
-
- final HttpRequest request = conn.receiveRequestHeader();
- if (request instanceof HttpEntityEnclosingRequest) {
-
- if (((HttpEntityEnclosingRequest) request).expectContinue()) {
- response = this.responseFactory.newHttpResponse(HttpVersion.HTTP_1_1,
- HttpStatus.SC_CONTINUE, context);
- if (this.expectationVerifier != null) {
- try {
- this.expectationVerifier.verify(request, response, context);
- } catch (final HttpException ex) {
- response = this.responseFactory.newHttpResponse(HttpVersion.HTTP_1_0,
- HttpStatus.SC_INTERNAL_SERVER_ERROR, context);
- handleException(ex, response);
- }
- }
- if (response.getStatusLine().getStatusCode() < 200) {
- // Send 1xx response indicating the server expections
- // have been met
- conn.sendResponseHeader(response);
- conn.flush();
- response = null;
- conn.receiveRequestEntity((HttpEntityEnclosingRequest) request);
- }
- } else {
- conn.receiveRequestEntity((HttpEntityEnclosingRequest) request);
- }
- }
-
- context.setAttribute(HttpCoreContext.HTTP_REQUEST, request);
-
- if (response == null) {
- response = this.responseFactory.newHttpResponse(HttpVersion.HTTP_1_1,
- HttpStatus.SC_OK, context);
- this.processor.process(request, context);
- doService(request, response, context);
- }
-
- // Make sure the request content is fully consumed
- if (request instanceof HttpEntityEnclosingRequest) {
- final HttpEntity entity = ((HttpEntityEnclosingRequest)request).getEntity();
- EntityUtils.consume(entity);
- }
-
- } catch (final HttpException ex) {
- response = this.responseFactory.newHttpResponse
- (HttpVersion.HTTP_1_0, HttpStatus.SC_INTERNAL_SERVER_ERROR,
- context);
- handleException(ex, response);
- }
-
- context.setAttribute(HttpCoreContext.HTTP_RESPONSE, response);
-
- this.processor.process(response, context);
- conn.sendResponseHeader(response);
- conn.sendResponseEntity(response);
- conn.flush();
-
- if (!this.connStrategy.keepAlive(response, context)) {
- conn.close();
- }
- }
-
- /**
- * Handles the given exception and generates an HTTP response to be sent
- * back to the client to inform about the exceptional condition encountered
- * in the course of the request processing.
- *
- * @param ex the exception.
- * @param response the HTTP response.
- */
- protected void handleException(final HttpException ex, final HttpResponse response) {
- if (ex instanceof MethodNotSupportedException) {
- response.setStatusCode(HttpStatus.SC_NOT_IMPLEMENTED);
- } else if (ex instanceof UnsupportedHttpVersionException) {
- response.setStatusCode(HttpStatus.SC_HTTP_VERSION_NOT_SUPPORTED);
- } else if (ex instanceof ProtocolException) {
- response.setStatusCode(HttpStatus.SC_BAD_REQUEST);
- } else {
- response.setStatusCode(HttpStatus.SC_INTERNAL_SERVER_ERROR);
- }
- String message = ex.getMessage();
- if (message == null) {
- message = ex.toString();
- }
- final byte[] msg = EncodingUtils.getAsciiBytes(message);
- final ByteArrayEntity entity = new ByteArrayEntity(msg);
- entity.setContentType("text/plain; charset=US-ASCII");
- response.setEntity(entity);
- }
-
- /**
- * The default implementation of this method attempts to resolve an
- * {@link HttpRequestHandler} for the request URI of the given request
- * and, if found, executes its
- * {@link HttpRequestHandler#handle(HttpRequest, HttpResponse, HttpContext)}
- * method.
- * <p>
- * Super-classes can override this method in order to provide a custom
- * implementation of the request processing logic.
- *
- * @param request the HTTP request.
- * @param response the HTTP response.
- * @param context the execution context.
- * @throws IOException in case of an I/O error.
- * @throws HttpException in case of HTTP protocol violation or a processing
- * problem.
- */
- protected void doService(
- final HttpRequest request,
- final HttpResponse response,
- final HttpContext context) throws HttpException, IOException {
- HttpRequestHandler handler = null;
- if (this.handlerMapper != null) {
- handler = this.handlerMapper.lookup(request);
- }
- if (handler != null) {
- handler.handle(request, response, context);
- } else {
- response.setStatusCode(HttpStatus.SC_NOT_IMPLEMENTED);
- }
- }
-
- /**
- * Adaptor class to transition from HttpRequestHandlerResolver to HttpRequestHandlerMapper.
- */
- @Deprecated
- private static class HttpRequestHandlerResolverAdapter implements HttpRequestHandlerMapper {
-
- private final HttpRequestHandlerResolver resolver;
-
- public HttpRequestHandlerResolverAdapter(final HttpRequestHandlerResolver resolver) {
- this.resolver = resolver;
- }
-
- public HttpRequestHandler lookup(final HttpRequest request) {
- return resolver.lookup(request.getRequestLine().getUri());
- }
-
- }
-
-}
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/ImmutableHttpProcessor.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/ImmutableHttpProcessor.java
deleted file mode 100644
index 8cb80c91b..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/ImmutableHttpProcessor.java
+++ /dev/null
@@ -1,143 +0,0 @@
-/*
- * ====================================================================
- * 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.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-package ch.boye.httpclientandroidlib.protocol;
-
-import java.io.IOException;
-import java.util.List;
-
-import ch.boye.httpclientandroidlib.HttpException;
-import ch.boye.httpclientandroidlib.HttpRequest;
-import ch.boye.httpclientandroidlib.HttpRequestInterceptor;
-import ch.boye.httpclientandroidlib.HttpResponse;
-import ch.boye.httpclientandroidlib.HttpResponseInterceptor;
-import ch.boye.httpclientandroidlib.annotation.ThreadSafe;
-
-/**
- * Immutable {@link HttpProcessor}.
- *
- * @since 4.1
- */
-@ThreadSafe // provided injected dependencies are immutable
-public final class ImmutableHttpProcessor implements HttpProcessor {
-
- private final HttpRequestInterceptor[] requestInterceptors;
- private final HttpResponseInterceptor[] responseInterceptors;
-
- public ImmutableHttpProcessor(
- final HttpRequestInterceptor[] requestInterceptors,
- final HttpResponseInterceptor[] responseInterceptors) {
- super();
- if (requestInterceptors != null) {
- final int l = requestInterceptors.length;
- this.requestInterceptors = new HttpRequestInterceptor[l];
- System.arraycopy(requestInterceptors, 0, this.requestInterceptors, 0, l);
- } else {
- this.requestInterceptors = new HttpRequestInterceptor[0];
- }
- if (responseInterceptors != null) {
- final int l = responseInterceptors.length;
- this.responseInterceptors = new HttpResponseInterceptor[l];
- System.arraycopy(responseInterceptors, 0, this.responseInterceptors, 0, l);
- } else {
- this.responseInterceptors = new HttpResponseInterceptor[0];
- }
- }
-
- /**
- * @since 4.3
- */
- public ImmutableHttpProcessor(
- final List<HttpRequestInterceptor> requestInterceptors,
- final List<HttpResponseInterceptor> responseInterceptors) {
- super();
- if (requestInterceptors != null) {
- final int l = requestInterceptors.size();
- this.requestInterceptors = requestInterceptors.toArray(new HttpRequestInterceptor[l]);
- } else {
- this.requestInterceptors = new HttpRequestInterceptor[0];
- }
- if (responseInterceptors != null) {
- final int l = responseInterceptors.size();
- this.responseInterceptors = responseInterceptors.toArray(new HttpResponseInterceptor[l]);
- } else {
- this.responseInterceptors = new HttpResponseInterceptor[0];
- }
- }
-
- /**
- * @deprecated (4.3) do not use.
- */
- @Deprecated
- public ImmutableHttpProcessor(
- final HttpRequestInterceptorList requestInterceptors,
- final HttpResponseInterceptorList responseInterceptors) {
- super();
- if (requestInterceptors != null) {
- final int count = requestInterceptors.getRequestInterceptorCount();
- this.requestInterceptors = new HttpRequestInterceptor[count];
- for (int i = 0; i < count; i++) {
- this.requestInterceptors[i] = requestInterceptors.getRequestInterceptor(i);
- }
- } else {
- this.requestInterceptors = new HttpRequestInterceptor[0];
- }
- if (responseInterceptors != null) {
- final int count = responseInterceptors.getResponseInterceptorCount();
- this.responseInterceptors = new HttpResponseInterceptor[count];
- for (int i = 0; i < count; i++) {
- this.responseInterceptors[i] = responseInterceptors.getResponseInterceptor(i);
- }
- } else {
- this.responseInterceptors = new HttpResponseInterceptor[0];
- }
- }
-
- public ImmutableHttpProcessor(final HttpRequestInterceptor... requestInterceptors) {
- this(requestInterceptors, null);
- }
-
- public ImmutableHttpProcessor(final HttpResponseInterceptor... responseInterceptors) {
- this(null, responseInterceptors);
- }
-
- public void process(
- final HttpRequest request,
- final HttpContext context) throws IOException, HttpException {
- for (final HttpRequestInterceptor requestInterceptor : this.requestInterceptors) {
- requestInterceptor.process(request, context);
- }
- }
-
- public void process(
- final HttpResponse response,
- final HttpContext context) throws IOException, HttpException {
- for (final HttpResponseInterceptor responseInterceptor : this.responseInterceptors) {
- responseInterceptor.process(response, context);
- }
- }
-
-}
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/RequestConnControl.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/RequestConnControl.java
deleted file mode 100644
index 1db509599..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/RequestConnControl.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * ====================================================================
- * 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.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-
-package ch.boye.httpclientandroidlib.protocol;
-
-import java.io.IOException;
-
-import ch.boye.httpclientandroidlib.HttpException;
-import ch.boye.httpclientandroidlib.HttpRequest;
-import ch.boye.httpclientandroidlib.HttpRequestInterceptor;
-import ch.boye.httpclientandroidlib.annotation.Immutable;
-import ch.boye.httpclientandroidlib.util.Args;
-
-/**
- * RequestConnControl is responsible for adding <code>Connection</code> header
- * to the outgoing requests, which is essential for managing persistence of
- * <code>HTTP/1.0</code> connections. This interceptor is recommended for
- * client side protocol processors.
- *
- * @since 4.0
- */
-@Immutable
-public class RequestConnControl implements HttpRequestInterceptor {
-
- public RequestConnControl() {
- super();
- }
-
- public void process(final HttpRequest request, final HttpContext context)
- throws HttpException, IOException {
- Args.notNull(request, "HTTP request");
-
- final String method = request.getRequestLine().getMethod();
- if (method.equalsIgnoreCase("CONNECT")) {
- return;
- }
-
- if (!request.containsHeader(HTTP.CONN_DIRECTIVE)) {
- // Default policy is to keep connection alive
- // whenever possible
- request.addHeader(HTTP.CONN_DIRECTIVE, HTTP.CONN_KEEP_ALIVE);
- }
- }
-
-}
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/RequestContent.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/RequestContent.java
deleted file mode 100644
index 2f90ad6d8..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/RequestContent.java
+++ /dev/null
@@ -1,127 +0,0 @@
-/*
- * ====================================================================
- * 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.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-
-package ch.boye.httpclientandroidlib.protocol;
-
-import java.io.IOException;
-
-import ch.boye.httpclientandroidlib.HttpEntity;
-import ch.boye.httpclientandroidlib.HttpEntityEnclosingRequest;
-import ch.boye.httpclientandroidlib.HttpException;
-import ch.boye.httpclientandroidlib.HttpRequest;
-import ch.boye.httpclientandroidlib.HttpRequestInterceptor;
-import ch.boye.httpclientandroidlib.HttpVersion;
-import ch.boye.httpclientandroidlib.ProtocolException;
-import ch.boye.httpclientandroidlib.ProtocolVersion;
-import ch.boye.httpclientandroidlib.annotation.Immutable;
-import ch.boye.httpclientandroidlib.util.Args;
-
-/**
- * RequestContent is the most important interceptor for outgoing requests.
- * It is responsible for delimiting content length by adding
- * <code>Content-Length</code> or <code>Transfer-Content</code> headers based
- * on the properties of the enclosed entity and the protocol version.
- * This interceptor is required for correct functioning of client side protocol
- * processors.
- *
- * @since 4.0
- */
-@Immutable
-public class RequestContent implements HttpRequestInterceptor {
-
- private final boolean overwrite;
-
- /**
- * Default constructor. The <code>Content-Length</code> or <code>Transfer-Encoding</code>
- * will cause the interceptor to throw {@link ProtocolException} if already present in the
- * response message.
- */
- public RequestContent() {
- this(false);
- }
-
- /**
- * Constructor that can be used to fine-tune behavior of this interceptor.
- *
- * @param overwrite If set to <code>true</code> the <code>Content-Length</code> and
- * <code>Transfer-Encoding</code> headers will be created or updated if already present.
- * If set to <code>false</code> the <code>Content-Length</code> and
- * <code>Transfer-Encoding</code> headers will cause the interceptor to throw
- * {@link ProtocolException} if already present in the response message.
- *
- * @since 4.2
- */
- public RequestContent(final boolean overwrite) {
- super();
- this.overwrite = overwrite;
- }
-
- public void process(final HttpRequest request, final HttpContext context)
- throws HttpException, IOException {
- Args.notNull(request, "HTTP request");
- if (request instanceof HttpEntityEnclosingRequest) {
- if (this.overwrite) {
- request.removeHeaders(HTTP.TRANSFER_ENCODING);
- request.removeHeaders(HTTP.CONTENT_LEN);
- } else {
- if (request.containsHeader(HTTP.TRANSFER_ENCODING)) {
- throw new ProtocolException("Transfer-encoding header already present");
- }
- if (request.containsHeader(HTTP.CONTENT_LEN)) {
- throw new ProtocolException("Content-Length header already present");
- }
- }
- final ProtocolVersion ver = request.getRequestLine().getProtocolVersion();
- final HttpEntity entity = ((HttpEntityEnclosingRequest)request).getEntity();
- if (entity == null) {
- request.addHeader(HTTP.CONTENT_LEN, "0");
- return;
- }
- // Must specify a transfer encoding or a content length
- if (entity.isChunked() || entity.getContentLength() < 0) {
- if (ver.lessEquals(HttpVersion.HTTP_1_0)) {
- throw new ProtocolException(
- "Chunked transfer encoding not allowed for " + ver);
- }
- request.addHeader(HTTP.TRANSFER_ENCODING, HTTP.CHUNK_CODING);
- } else {
- request.addHeader(HTTP.CONTENT_LEN, Long.toString(entity.getContentLength()));
- }
- // Specify a content type if known
- if (entity.getContentType() != null && !request.containsHeader(
- HTTP.CONTENT_TYPE )) {
- request.addHeader(entity.getContentType());
- }
- // Specify a content encoding if known
- if (entity.getContentEncoding() != null && !request.containsHeader(
- HTTP.CONTENT_ENCODING)) {
- request.addHeader(entity.getContentEncoding());
- }
- }
- }
-
-}
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/RequestDate.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/RequestDate.java
deleted file mode 100644
index a2a0fa8b6..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/RequestDate.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * ====================================================================
- * 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.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-
-package ch.boye.httpclientandroidlib.protocol;
-
-import java.io.IOException;
-
-import ch.boye.httpclientandroidlib.HttpEntityEnclosingRequest;
-import ch.boye.httpclientandroidlib.HttpException;
-import ch.boye.httpclientandroidlib.HttpRequest;
-import ch.boye.httpclientandroidlib.HttpRequestInterceptor;
-import ch.boye.httpclientandroidlib.annotation.ThreadSafe;
-import ch.boye.httpclientandroidlib.util.Args;
-
-/**
- * RequestDate interceptor is responsible for adding <code>Date</code> header
- * to the outgoing requests This interceptor is optional for client side
- * protocol processors.
- *
- * @since 4.0
- */
-@ThreadSafe
-public class RequestDate implements HttpRequestInterceptor {
-
- private static final HttpDateGenerator DATE_GENERATOR = new HttpDateGenerator();
-
- public RequestDate() {
- super();
- }
-
- public void process(final HttpRequest request, final HttpContext context)
- throws HttpException, IOException {
- Args.notNull(request, "HTTP request");
- if ((request instanceof HttpEntityEnclosingRequest) &&
- !request.containsHeader(HTTP.DATE_HEADER)) {
- final String httpdate = DATE_GENERATOR.getCurrentDate();
- request.setHeader(HTTP.DATE_HEADER, httpdate);
- }
- }
-
-}
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/RequestExpectContinue.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/RequestExpectContinue.java
deleted file mode 100644
index 16cb8cd1c..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/RequestExpectContinue.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * ====================================================================
- * 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.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-
-package ch.boye.httpclientandroidlib.protocol;
-
-import java.io.IOException;
-
-import ch.boye.httpclientandroidlib.HttpEntity;
-import ch.boye.httpclientandroidlib.HttpEntityEnclosingRequest;
-import ch.boye.httpclientandroidlib.HttpException;
-import ch.boye.httpclientandroidlib.HttpRequest;
-import ch.boye.httpclientandroidlib.HttpRequestInterceptor;
-import ch.boye.httpclientandroidlib.HttpVersion;
-import ch.boye.httpclientandroidlib.ProtocolVersion;
-import ch.boye.httpclientandroidlib.annotation.Immutable;
-import ch.boye.httpclientandroidlib.params.CoreProtocolPNames;
-import ch.boye.httpclientandroidlib.util.Args;
-
-/**
- * RequestExpectContinue is responsible for enabling the 'expect-continue'
- * handshake by adding <code>Expect</code> header. This interceptor is
- * recommended for client side protocol processors.
- *
- * @since 4.0
- */
-@Immutable
-@SuppressWarnings("deprecation")
-public class RequestExpectContinue implements HttpRequestInterceptor {
-
- private final boolean activeByDefault;
-
- /**
- * @deprecated (4.3) use {@link ch.boye.httpclientandroidlib.protocol.RequestExpectContinue#RequestExpectContinue(boolean)}
- */
- @Deprecated
- public RequestExpectContinue() {
- this(false);
- }
-
- /**
- * @since 4.3
- */
- public RequestExpectContinue(final boolean activeByDefault) {
- super();
- this.activeByDefault = activeByDefault;
- }
-
- public void process(final HttpRequest request, final HttpContext context)
- throws HttpException, IOException {
- Args.notNull(request, "HTTP request");
-
- if (!request.containsHeader(HTTP.EXPECT_DIRECTIVE)) {
- if (request instanceof HttpEntityEnclosingRequest) {
- final ProtocolVersion ver = request.getRequestLine().getProtocolVersion();
- final HttpEntity entity = ((HttpEntityEnclosingRequest)request).getEntity();
- // Do not send the expect header if request body is known to be empty
- if (entity != null
- && entity.getContentLength() != 0 && !ver.lessEquals(HttpVersion.HTTP_1_0)) {
- final boolean active = request.getParams().getBooleanParameter(
- CoreProtocolPNames.USE_EXPECT_CONTINUE, this.activeByDefault);
- if (active) {
- request.addHeader(HTTP.EXPECT_DIRECTIVE, HTTP.EXPECT_CONTINUE);
- }
- }
- }
- }
- }
-
-}
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/RequestTargetHost.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/RequestTargetHost.java
deleted file mode 100644
index 531a8a235..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/RequestTargetHost.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- * ====================================================================
- * 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.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-
-package ch.boye.httpclientandroidlib.protocol;
-
-import java.io.IOException;
-import java.net.InetAddress;
-
-import ch.boye.httpclientandroidlib.HttpConnection;
-import ch.boye.httpclientandroidlib.HttpException;
-import ch.boye.httpclientandroidlib.HttpHost;
-import ch.boye.httpclientandroidlib.HttpInetConnection;
-import ch.boye.httpclientandroidlib.HttpRequest;
-import ch.boye.httpclientandroidlib.HttpRequestInterceptor;
-import ch.boye.httpclientandroidlib.HttpVersion;
-import ch.boye.httpclientandroidlib.ProtocolException;
-import ch.boye.httpclientandroidlib.ProtocolVersion;
-import ch.boye.httpclientandroidlib.annotation.Immutable;
-import ch.boye.httpclientandroidlib.util.Args;
-
-/**
- * RequestTargetHost is responsible for adding <code>Host</code> header. This
- * interceptor is required for client side protocol processors.
- *
- * @since 4.0
- */
-@Immutable
-public class RequestTargetHost implements HttpRequestInterceptor {
-
- public RequestTargetHost() {
- super();
- }
-
- public void process(final HttpRequest request, final HttpContext context)
- throws HttpException, IOException {
- Args.notNull(request, "HTTP request");
-
- final HttpCoreContext corecontext = HttpCoreContext.adapt(context);
-
- final ProtocolVersion ver = request.getRequestLine().getProtocolVersion();
- final String method = request.getRequestLine().getMethod();
- if (method.equalsIgnoreCase("CONNECT") && ver.lessEquals(HttpVersion.HTTP_1_0)) {
- return;
- }
-
- if (!request.containsHeader(HTTP.TARGET_HOST)) {
- HttpHost targethost = corecontext.getTargetHost();
- if (targethost == null) {
- final HttpConnection conn = corecontext.getConnection();
- if (conn instanceof HttpInetConnection) {
- // Populate the context with a default HTTP host based on the
- // inet address of the target host
- final InetAddress address = ((HttpInetConnection) conn).getRemoteAddress();
- final int port = ((HttpInetConnection) conn).getRemotePort();
- if (address != null) {
- targethost = new HttpHost(address.getHostName(), port);
- }
- }
- if (targethost == null) {
- if (ver.lessEquals(HttpVersion.HTTP_1_0)) {
- return;
- } else {
- throw new ProtocolException("Target host missing");
- }
- }
- }
- request.addHeader(HTTP.TARGET_HOST, targethost.toHostString());
- }
- }
-
-}
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/RequestUserAgent.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/RequestUserAgent.java
deleted file mode 100644
index 23f4a45a7..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/RequestUserAgent.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * ====================================================================
- * 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.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-
-package ch.boye.httpclientandroidlib.protocol;
-
-import java.io.IOException;
-
-import ch.boye.httpclientandroidlib.HttpException;
-import ch.boye.httpclientandroidlib.HttpRequest;
-import ch.boye.httpclientandroidlib.HttpRequestInterceptor;
-import ch.boye.httpclientandroidlib.annotation.Immutable;
-import ch.boye.httpclientandroidlib.params.CoreProtocolPNames;
-import ch.boye.httpclientandroidlib.params.HttpParams;
-import ch.boye.httpclientandroidlib.util.Args;
-
-/**
- * RequestUserAgent is responsible for adding <code>User-Agent</code> header.
- * This interceptor is recommended for client side protocol processors.
- *
- * @since 4.0
- */
-@SuppressWarnings("deprecation")
-@Immutable
-public class RequestUserAgent implements HttpRequestInterceptor {
-
- private final String userAgent;
-
- public RequestUserAgent(final String userAgent) {
- super();
- this.userAgent = userAgent;
- }
-
- public RequestUserAgent() {
- this(null);
- }
-
- public void process(final HttpRequest request, final HttpContext context)
- throws HttpException, IOException {
- Args.notNull(request, "HTTP request");
- if (!request.containsHeader(HTTP.USER_AGENT)) {
- String s = null;
- final HttpParams params = request.getParams();
- if (params != null) {
- s = (String) params.getParameter(CoreProtocolPNames.USER_AGENT);
- }
- if (s == null) {
- s = this.userAgent;
- }
- if (s != null) {
- request.addHeader(HTTP.USER_AGENT, s);
- }
- }
- }
-
-}
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/ResponseConnControl.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/ResponseConnControl.java
deleted file mode 100644
index 29014e32f..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/ResponseConnControl.java
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- * ====================================================================
- * 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.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-
-package ch.boye.httpclientandroidlib.protocol;
-
-import java.io.IOException;
-
-import ch.boye.httpclientandroidlib.Header;
-import ch.boye.httpclientandroidlib.HttpEntity;
-import ch.boye.httpclientandroidlib.HttpException;
-import ch.boye.httpclientandroidlib.HttpRequest;
-import ch.boye.httpclientandroidlib.HttpResponse;
-import ch.boye.httpclientandroidlib.HttpResponseInterceptor;
-import ch.boye.httpclientandroidlib.HttpStatus;
-import ch.boye.httpclientandroidlib.HttpVersion;
-import ch.boye.httpclientandroidlib.ProtocolVersion;
-import ch.boye.httpclientandroidlib.annotation.Immutable;
-import ch.boye.httpclientandroidlib.util.Args;
-
-/**
- * ResponseConnControl is responsible for adding <code>Connection</code> header
- * to the outgoing responses, which is essential for managing persistence of
- * <code>HTTP/1.0</code> connections. This interceptor is recommended for
- * server side protocol processors.
- *
- * @since 4.0
- */
-@Immutable
-public class ResponseConnControl implements HttpResponseInterceptor {
-
- public ResponseConnControl() {
- super();
- }
-
- public void process(final HttpResponse response, final HttpContext context)
- throws HttpException, IOException {
- Args.notNull(response, "HTTP response");
-
- final HttpCoreContext corecontext = HttpCoreContext.adapt(context);
-
- // Always drop connection after certain type of responses
- final int status = response.getStatusLine().getStatusCode();
- if (status == HttpStatus.SC_BAD_REQUEST ||
- status == HttpStatus.SC_REQUEST_TIMEOUT ||
- status == HttpStatus.SC_LENGTH_REQUIRED ||
- status == HttpStatus.SC_REQUEST_TOO_LONG ||
- status == HttpStatus.SC_REQUEST_URI_TOO_LONG ||
- status == HttpStatus.SC_SERVICE_UNAVAILABLE ||
- status == HttpStatus.SC_NOT_IMPLEMENTED) {
- response.setHeader(HTTP.CONN_DIRECTIVE, HTTP.CONN_CLOSE);
- return;
- }
- final Header explicit = response.getFirstHeader(HTTP.CONN_DIRECTIVE);
- if (explicit != null && HTTP.CONN_CLOSE.equalsIgnoreCase(explicit.getValue())) {
- // Connection persistence explicitly disabled
- return;
- }
- // Always drop connection for HTTP/1.0 responses and below
- // if the content body cannot be correctly delimited
- final HttpEntity entity = response.getEntity();
- if (entity != null) {
- final ProtocolVersion ver = response.getStatusLine().getProtocolVersion();
- if (entity.getContentLength() < 0 &&
- (!entity.isChunked() || ver.lessEquals(HttpVersion.HTTP_1_0))) {
- response.setHeader(HTTP.CONN_DIRECTIVE, HTTP.CONN_CLOSE);
- return;
- }
- }
- // Drop connection if requested by the client or request was <= 1.0
- final HttpRequest request = corecontext.getRequest();
- if (request != null) {
- final Header header = request.getFirstHeader(HTTP.CONN_DIRECTIVE);
- if (header != null) {
- response.setHeader(HTTP.CONN_DIRECTIVE, header.getValue());
- } else if (request.getProtocolVersion().lessEquals(HttpVersion.HTTP_1_0)) {
- response.setHeader(HTTP.CONN_DIRECTIVE, HTTP.CONN_CLOSE);
- }
- }
- }
-
-}
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/ResponseContent.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/ResponseContent.java
deleted file mode 100644
index e2dcf2eef..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/ResponseContent.java
+++ /dev/null
@@ -1,133 +0,0 @@
-/*
- * ====================================================================
- * 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.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-
-package ch.boye.httpclientandroidlib.protocol;
-
-import java.io.IOException;
-
-import ch.boye.httpclientandroidlib.HttpEntity;
-import ch.boye.httpclientandroidlib.HttpException;
-import ch.boye.httpclientandroidlib.HttpResponse;
-import ch.boye.httpclientandroidlib.HttpResponseInterceptor;
-import ch.boye.httpclientandroidlib.HttpStatus;
-import ch.boye.httpclientandroidlib.HttpVersion;
-import ch.boye.httpclientandroidlib.ProtocolException;
-import ch.boye.httpclientandroidlib.ProtocolVersion;
-import ch.boye.httpclientandroidlib.annotation.Immutable;
-import ch.boye.httpclientandroidlib.util.Args;
-
-/**
- * ResponseContent is the most important interceptor for outgoing responses.
- * It is responsible for delimiting content length by adding
- * <code>Content-Length</code> or <code>Transfer-Content</code> headers based
- * on the properties of the enclosed entity and the protocol version.
- * This interceptor is required for correct functioning of server side protocol
- * processors.
- *
- * @since 4.0
- */
-@Immutable
-public class ResponseContent implements HttpResponseInterceptor {
-
- private final boolean overwrite;
-
- /**
- * Default constructor. The <code>Content-Length</code> or <code>Transfer-Encoding</code>
- * will cause the interceptor to throw {@link ProtocolException} if already present in the
- * response message.
- */
- public ResponseContent() {
- this(false);
- }
-
- /**
- * Constructor that can be used to fine-tune behavior of this interceptor.
- *
- * @param overwrite If set to <code>true</code> the <code>Content-Length</code> and
- * <code>Transfer-Encoding</code> headers will be created or updated if already present.
- * If set to <code>false</code> the <code>Content-Length</code> and
- * <code>Transfer-Encoding</code> headers will cause the interceptor to throw
- * {@link ProtocolException} if already present in the response message.
- *
- * @since 4.2
- */
- public ResponseContent(final boolean overwrite) {
- super();
- this.overwrite = overwrite;
- }
-
- /**
- * Processes the response (possibly updating or inserting) Content-Length and Transfer-Encoding headers.
- * @param response The HttpResponse to modify.
- * @param context Unused.
- * @throws ProtocolException If either the Content-Length or Transfer-Encoding headers are found.
- * @throws IllegalArgumentException If the response is null.
- */
- public void process(final HttpResponse response, final HttpContext context)
- throws HttpException, IOException {
- Args.notNull(response, "HTTP response");
- if (this.overwrite) {
- response.removeHeaders(HTTP.TRANSFER_ENCODING);
- response.removeHeaders(HTTP.CONTENT_LEN);
- } else {
- if (response.containsHeader(HTTP.TRANSFER_ENCODING)) {
- throw new ProtocolException("Transfer-encoding header already present");
- }
- if (response.containsHeader(HTTP.CONTENT_LEN)) {
- throw new ProtocolException("Content-Length header already present");
- }
- }
- final ProtocolVersion ver = response.getStatusLine().getProtocolVersion();
- final HttpEntity entity = response.getEntity();
- if (entity != null) {
- final long len = entity.getContentLength();
- if (entity.isChunked() && !ver.lessEquals(HttpVersion.HTTP_1_0)) {
- response.addHeader(HTTP.TRANSFER_ENCODING, HTTP.CHUNK_CODING);
- } else if (len >= 0) {
- response.addHeader(HTTP.CONTENT_LEN, Long.toString(entity.getContentLength()));
- }
- // Specify a content type if known
- if (entity.getContentType() != null && !response.containsHeader(
- HTTP.CONTENT_TYPE )) {
- response.addHeader(entity.getContentType());
- }
- // Specify a content encoding if known
- if (entity.getContentEncoding() != null && !response.containsHeader(
- HTTP.CONTENT_ENCODING)) {
- response.addHeader(entity.getContentEncoding());
- }
- } else {
- final int status = response.getStatusLine().getStatusCode();
- if (status != HttpStatus.SC_NO_CONTENT
- && status != HttpStatus.SC_NOT_MODIFIED
- && status != HttpStatus.SC_RESET_CONTENT) {
- response.addHeader(HTTP.CONTENT_LEN, "0");
- }
- }
- }
-
-}
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/ResponseDate.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/ResponseDate.java
deleted file mode 100644
index 300ff761e..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/ResponseDate.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * ====================================================================
- * 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.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-
-package ch.boye.httpclientandroidlib.protocol;
-
-import java.io.IOException;
-
-import ch.boye.httpclientandroidlib.HttpException;
-import ch.boye.httpclientandroidlib.HttpResponse;
-import ch.boye.httpclientandroidlib.HttpResponseInterceptor;
-import ch.boye.httpclientandroidlib.HttpStatus;
-import ch.boye.httpclientandroidlib.annotation.ThreadSafe;
-import ch.boye.httpclientandroidlib.util.Args;
-
-/**
- * ResponseDate is responsible for adding <code>Date<c/ode> header to the
- * outgoing responses. This interceptor is recommended for server side protocol
- * processors.
- *
- * @since 4.0
- */
-@ThreadSafe
-public class ResponseDate implements HttpResponseInterceptor {
-
- private static final HttpDateGenerator DATE_GENERATOR = new HttpDateGenerator();
-
- public ResponseDate() {
- super();
- }
-
- public void process(final HttpResponse response, final HttpContext context)
- throws HttpException, IOException {
- Args.notNull(response, "HTTP response");
- final int status = response.getStatusLine().getStatusCode();
- if ((status >= HttpStatus.SC_OK) &&
- !response.containsHeader(HTTP.DATE_HEADER)) {
- final String httpdate = DATE_GENERATOR.getCurrentDate();
- response.setHeader(HTTP.DATE_HEADER, httpdate);
- }
- }
-
-}
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/ResponseServer.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/ResponseServer.java
deleted file mode 100644
index f0672a006..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/ResponseServer.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * ====================================================================
- * 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.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-
-package ch.boye.httpclientandroidlib.protocol;
-
-import java.io.IOException;
-
-import ch.boye.httpclientandroidlib.HttpException;
-import ch.boye.httpclientandroidlib.HttpResponse;
-import ch.boye.httpclientandroidlib.HttpResponseInterceptor;
-import ch.boye.httpclientandroidlib.annotation.Immutable;
-import ch.boye.httpclientandroidlib.util.Args;
-
-/**
- * ResponseServer is responsible for adding <code>Server</code> header. This
- * interceptor is recommended for server side protocol processors.
- *
- * @since 4.0
- */
-@Immutable
-public class ResponseServer implements HttpResponseInterceptor {
-
- private final String originServer;
-
- /**
- * @since 4.3
- */
- public ResponseServer(final String originServer) {
- super();
- this.originServer = originServer;
- }
-
- public ResponseServer() {
- this(null);
- }
-
- public void process(final HttpResponse response, final HttpContext context)
- throws HttpException, IOException {
- Args.notNull(response, "HTTP response");
- if (!response.containsHeader(HTTP.SERVER_HEADER)) {
- if (this.originServer != null) {
- response.addHeader(HTTP.SERVER_HEADER, this.originServer);
- }
- }
- }
-
-}
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/SyncBasicHttpContext.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/SyncBasicHttpContext.java
deleted file mode 100644
index 60138764b..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/SyncBasicHttpContext.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * ====================================================================
- * 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.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-
-package ch.boye.httpclientandroidlib.protocol;
-
-/**
- * Thread-safe extension of the {@link BasicHttpContext}.
- *
- * @since 4.0
- *
- * @deprecated (4.2) HttpContext instances may not be shared by multiple threads
- */
-@Deprecated
-public class SyncBasicHttpContext extends BasicHttpContext {
-
- public SyncBasicHttpContext(final HttpContext parentContext) {
- super(parentContext);
- }
-
- /**
- * @since 4.2
- */
- public SyncBasicHttpContext() {
- super();
- }
-
- @Override
- public synchronized Object getAttribute(final String id) {
- return super.getAttribute(id);
- }
-
- @Override
- public synchronized void setAttribute(final String id, final Object obj) {
- super.setAttribute(id, obj);
- }
-
- @Override
- public synchronized Object removeAttribute(final String id) {
- return super.removeAttribute(id);
- }
-
- /**
- * @since 4.2
- */
- @Override
- public synchronized void clear() {
- super.clear();
- }
-
-}
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/UriHttpRequestHandlerMapper.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/UriHttpRequestHandlerMapper.java
deleted file mode 100644
index f09dea611..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/UriHttpRequestHandlerMapper.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/*
- * ====================================================================
- * 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.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-
-package ch.boye.httpclientandroidlib.protocol;
-
-import ch.boye.httpclientandroidlib.HttpRequest;
-import ch.boye.httpclientandroidlib.annotation.ThreadSafe;
-import ch.boye.httpclientandroidlib.util.Args;
-
-/**
- * Maintains a map of HTTP request handlers keyed by a request URI pattern.
- * <br>
- * Patterns may have three formats:
- * <ul>
- * <li><code>*</code></li>
- * <li><code>*&lt;uri&gt;</code></li>
- * <li><code>&lt;uri&gt;*</code></li>
- * </ul>
- * <br>
- * This class can be used to map an instance of
- * {@link HttpRequestHandler} matching a particular request URI. Usually the
- * mapped request handler will be used to process the request with the
- * specified request URI.
- *
- * @since 4.3
- */
-@ThreadSafe // provided injected dependencies are thread-safe
-public class UriHttpRequestHandlerMapper implements HttpRequestHandlerMapper {
-
- private final UriPatternMatcher<HttpRequestHandler> matcher;
-
- protected UriHttpRequestHandlerMapper(final UriPatternMatcher<HttpRequestHandler> matcher) {
- super();
- this.matcher = Args.notNull(matcher, "Pattern matcher");
- }
-
- public UriHttpRequestHandlerMapper() {
- this(new UriPatternMatcher<HttpRequestHandler>());
- }
-
- /**
- * Registers the given {@link HttpRequestHandler} as a handler for URIs
- * matching the given pattern.
- *
- * @param pattern the pattern to register the handler for.
- * @param handler the handler.
- */
- public void register(final String pattern, final HttpRequestHandler handler) {
- Args.notNull(pattern, "Pattern");
- Args.notNull(handler, "Handler");
- matcher.register(pattern, handler);
- }
-
- /**
- * Removes registered handler, if exists, for the given pattern.
- *
- * @param pattern the pattern to unregister the handler for.
- */
- public void unregister(final String pattern) {
- matcher.unregister(pattern);
- }
-
- /**
- * Extracts request path from the given {@link HttpRequest}
- */
- protected String getRequestPath(final HttpRequest request) {
- String uriPath = request.getRequestLine().getUri();
- int index = uriPath.indexOf("?");
- if (index != -1) {
- uriPath = uriPath.substring(0, index);
- } else {
- index = uriPath.indexOf("#");
- if (index != -1) {
- uriPath = uriPath.substring(0, index);
- }
- }
- return uriPath;
- }
-
- /**
- * Looks up a handler matching the given request URI.
- *
- * @param request the request
- * @return handler or <code>null</code> if no match is found.
- */
- public HttpRequestHandler lookup(final HttpRequest request) {
- Args.notNull(request, "HTTP request");
- return matcher.lookup(getRequestPath(request));
- }
-
-}
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/UriPatternMatcher.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/UriPatternMatcher.java
deleted file mode 100644
index 77c46a70c..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/UriPatternMatcher.java
+++ /dev/null
@@ -1,165 +0,0 @@
-/*
- * ====================================================================
- * 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.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-
-package ch.boye.httpclientandroidlib.protocol;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import ch.boye.httpclientandroidlib.annotation.GuardedBy;
-import ch.boye.httpclientandroidlib.annotation.ThreadSafe;
-import ch.boye.httpclientandroidlib.util.Args;
-
-/**
- * Maintains a map of objects keyed by a request URI pattern.
- * <br>
- * Patterns may have three formats:
- * <ul>
- * <li><code>*</code></li>
- * <li><code>*&lt;uri&gt;</code></li>
- * <li><code>&lt;uri&gt;*</code></li>
- * </ul>
- * <br>
- * This class can be used to resolve an object matching a particular request
- * URI.
- *
- * @since 4.0
- */
-@ThreadSafe
-public class UriPatternMatcher<T> {
-
- @GuardedBy("this")
- private final Map<String, T> map;
-
- public UriPatternMatcher() {
- super();
- this.map = new HashMap<String, T>();
- }
-
- /**
- * Registers the given object for URIs matching the given pattern.
- *
- * @param pattern the pattern to register the handler for.
- * @param obj the object.
- */
- public synchronized void register(final String pattern, final T obj) {
- Args.notNull(pattern, "URI request pattern");
- this.map.put(pattern, obj);
- }
-
- /**
- * Removes registered object, if exists, for the given pattern.
- *
- * @param pattern the pattern to unregister.
- */
- public synchronized void unregister(final String pattern) {
- if (pattern == null) {
- return;
- }
- this.map.remove(pattern);
- }
-
- /**
- * @deprecated (4.1) do not use
- */
- @Deprecated
- public synchronized void setHandlers(final Map<String, T> map) {
- Args.notNull(map, "Map of handlers");
- this.map.clear();
- this.map.putAll(map);
- }
-
- /**
- * @deprecated (4.1) do not use
- */
- @Deprecated
- public synchronized void setObjects(final Map<String, T> map) {
- Args.notNull(map, "Map of handlers");
- this.map.clear();
- this.map.putAll(map);
- }
-
- /**
- * @deprecated (4.1) do not use
- */
- @Deprecated
- public synchronized Map<String, T> getObjects() {
- return this.map;
- }
-
- /**
- * Looks up an object matching the given request path.
- *
- * @param path the request path
- * @return object or <code>null</code> if no match is found.
- */
- public synchronized T lookup(final String path) {
- Args.notNull(path, "Request path");
- // direct match?
- T obj = this.map.get(path);
- if (obj == null) {
- // pattern match?
- String bestMatch = null;
- for (final String pattern : this.map.keySet()) {
- if (matchUriRequestPattern(pattern, path)) {
- // we have a match. is it any better?
- if (bestMatch == null
- || (bestMatch.length() < pattern.length())
- || (bestMatch.length() == pattern.length() && pattern.endsWith("*"))) {
- obj = this.map.get(pattern);
- bestMatch = pattern;
- }
- }
- }
- }
- return obj;
- }
-
- /**
- * Tests if the given request path matches the given pattern.
- *
- * @param pattern the pattern
- * @param path the request path
- * @return <code>true</code> if the request URI matches the pattern,
- * <code>false</code> otherwise.
- */
- protected boolean matchUriRequestPattern(final String pattern, final String path) {
- if (pattern.equals("*")) {
- return true;
- } else {
- return
- (pattern.endsWith("*") && path.startsWith(pattern.substring(0, pattern.length() - 1))) ||
- (pattern.startsWith("*") && path.endsWith(pattern.substring(1, pattern.length())));
- }
- }
-
- @Override
- public String toString() {
- return this.map.toString();
- }
-
-}
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/package-info.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/package-info.java
deleted file mode 100644
index 97fcbfdc1..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/package-info.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * ====================================================================
- * 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.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-
-/**
- * Core HTTP protocol execution framework and HTTP protocol handlers
- * for synchronous, blocking communication.
- */
-package ch.boye.httpclientandroidlib.protocol;