From 15441da969148d5d1849646b0d76110c72192966 Mon Sep 17 00:00:00 2001 From: Juergen Hoeller Date: Fri, 29 Mar 2013 15:03:55 +0100 Subject: [PATCH] Removed Apache Commons HttpClient support (superseded by Apache HttpComponents) --- build.gradle | 2 - .../http/client/CommonsClientHttpRequest.java | 89 ------ .../CommonsClientHttpRequestFactory.java | 172 ----------- .../client/CommonsClientHttpResponse.java | 77 ----- .../CommonsHttpInvokerRequestExecutor.java | 267 ------------------ .../CommonsHttpRequestFactoryTests.java | 37 --- 6 files changed, 644 deletions(-) delete mode 100644 spring-web/src/main/java/org/springframework/http/client/CommonsClientHttpRequest.java delete mode 100644 spring-web/src/main/java/org/springframework/http/client/CommonsClientHttpRequestFactory.java delete mode 100644 spring-web/src/main/java/org/springframework/http/client/CommonsClientHttpResponse.java delete mode 100644 spring-web/src/main/java/org/springframework/remoting/httpinvoker/CommonsHttpInvokerRequestExecutor.java delete mode 100644 spring-web/src/test/java/org/springframework/http/client/CommonsHttpRequestFactoryTests.java diff --git a/build.gradle b/build.gradle index bf17b1e56a7..c9ac3724630 100644 --- a/build.gradle +++ b/build.gradle @@ -83,7 +83,6 @@ configure(allprojects) { project -> "http://docs.oracle.com/cd/E13222_01/wls/docs90/javadocs", // commonj "http://quartz-scheduler.org/api/2.1.5", "http://www.eclipse.org/aspectj/doc/released/aspectj5rt-api/", - "http://hc.apache.org/httpclient-3.x/apidocs", "http://fasterxml.github.com/jackson-core/javadoc/2.0.0", "http://jackson.codehaus.org/1.4.2/javadoc", "http://pic.dhe.ibm.com/infocenter/wasinfo/v7r0/topic/com.ibm.websphere.javadoc.doc/web/apidocs", @@ -453,7 +452,6 @@ project("spring-web") { optional("rome:rome:1.0") optional("commons-fileupload:commons-fileupload:1.2") optional("commons-io:commons-io:1.3") - optional("commons-httpclient:commons-httpclient:3.1") optional("org.apache.httpcomponents:httpclient:4.2") optional("org.codehaus.jackson:jackson-mapper-asl:1.4.2") optional("com.fasterxml.jackson.core:jackson-databind:2.0.1") diff --git a/spring-web/src/main/java/org/springframework/http/client/CommonsClientHttpRequest.java b/spring-web/src/main/java/org/springframework/http/client/CommonsClientHttpRequest.java deleted file mode 100644 index a3531a42e04..00000000000 --- a/spring-web/src/main/java/org/springframework/http/client/CommonsClientHttpRequest.java +++ /dev/null @@ -1,89 +0,0 @@ -/* - * Copyright 2002-2012 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.springframework.http.client; - -import java.io.IOException; -import java.net.URI; -import java.util.List; -import java.util.Map; - -import org.apache.commons.httpclient.HttpClient; -import org.apache.commons.httpclient.HttpMethodBase; -import org.apache.commons.httpclient.URIException; -import org.apache.commons.httpclient.methods.ByteArrayRequestEntity; -import org.apache.commons.httpclient.methods.EntityEnclosingMethod; -import org.apache.commons.httpclient.methods.RequestEntity; - -import org.springframework.http.HttpHeaders; -import org.springframework.http.HttpMethod; - -/** - * {@link org.springframework.http.client.ClientHttpRequest} implementation that uses - * Apache Commons HttpClient to execute requests. - * - *

Created via the {@link CommonsClientHttpRequestFactory}. - * - * @author Arjen Poutsma - * @since 3.0 - * @see CommonsClientHttpRequestFactory#createRequest(java.net.URI, HttpMethod) - * @deprecated In favor of {@link HttpComponentsClientHttpRequest} - */ -@Deprecated -final class CommonsClientHttpRequest extends AbstractBufferingClientHttpRequest { - - private final HttpClient httpClient; - - private final HttpMethodBase httpMethod; - - - CommonsClientHttpRequest(HttpClient httpClient, HttpMethodBase httpMethod) { - this.httpClient = httpClient; - this.httpMethod = httpMethod; - } - - - public HttpMethod getMethod() { - return HttpMethod.valueOf(this.httpMethod.getName()); - } - - public URI getURI() { - try { - return URI.create(this.httpMethod.getURI().getEscapedURI()); - } - catch (URIException ex) { - throw new IllegalStateException("Could not get HttpMethod URI: " + ex.getMessage(), ex); - } - } - - @Override - public ClientHttpResponse executeInternal(HttpHeaders headers, byte[] output) throws IOException { - for (Map.Entry> entry : headers.entrySet()) { - String headerName = entry.getKey(); - for (String headerValue : entry.getValue()) { - httpMethod.addRequestHeader(headerName, headerValue); - } - } - if (this.httpMethod instanceof EntityEnclosingMethod) { - EntityEnclosingMethod entityEnclosingMethod = (EntityEnclosingMethod) this.httpMethod; - RequestEntity requestEntity = new ByteArrayRequestEntity(output); - entityEnclosingMethod.setRequestEntity(requestEntity); - } - this.httpClient.executeMethod(this.httpMethod); - return new CommonsClientHttpResponse(this.httpMethod); - } - -} diff --git a/spring-web/src/main/java/org/springframework/http/client/CommonsClientHttpRequestFactory.java b/spring-web/src/main/java/org/springframework/http/client/CommonsClientHttpRequestFactory.java deleted file mode 100644 index 429b383442d..00000000000 --- a/spring-web/src/main/java/org/springframework/http/client/CommonsClientHttpRequestFactory.java +++ /dev/null @@ -1,172 +0,0 @@ -/* - * Copyright 2002-2012 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.springframework.http.client; - -import java.io.IOException; -import java.net.URI; - -import org.apache.commons.httpclient.HttpClient; -import org.apache.commons.httpclient.HttpConnectionManager; -import org.apache.commons.httpclient.HttpMethodBase; -import org.apache.commons.httpclient.MultiThreadedHttpConnectionManager; -import org.apache.commons.httpclient.methods.DeleteMethod; -import org.apache.commons.httpclient.methods.GetMethod; -import org.apache.commons.httpclient.methods.HeadMethod; -import org.apache.commons.httpclient.methods.OptionsMethod; -import org.apache.commons.httpclient.methods.PostMethod; -import org.apache.commons.httpclient.methods.PutMethod; -import org.apache.commons.httpclient.methods.TraceMethod; - -import org.springframework.beans.factory.DisposableBean; -import org.springframework.http.HttpMethod; -import org.springframework.util.Assert; - -/** - * {@link org.springframework.http.client.ClientHttpRequestFactory} implementation that uses - * Jakarta Commons HttpClient to create requests. - * - *

Allows to use a pre-configured {@link HttpClient} instance - - * potentially with authentication, HTTP connection pooling, etc. - * - * @author Arjen Poutsma - * @since 3.0 - * @see org.springframework.http.client.SimpleClientHttpRequestFactory - * @deprecated In favor of {@link HttpComponentsClientHttpRequestFactory} - */ -@Deprecated -public class CommonsClientHttpRequestFactory implements ClientHttpRequestFactory, DisposableBean { - - private static final int DEFAULT_READ_TIMEOUT_MILLISECONDS = (60 * 1000); - - private HttpClient httpClient; - - - /** - * Create a new instance of the {@code CommonsHttpRequestFactory} with a default - * {@link HttpClient} that uses a default {@link MultiThreadedHttpConnectionManager}. - */ - public CommonsClientHttpRequestFactory() { - this.httpClient = new HttpClient(new MultiThreadedHttpConnectionManager()); - this.setReadTimeout(DEFAULT_READ_TIMEOUT_MILLISECONDS); - } - - /** - * Create a new instance of the {@code CommonsHttpRequestFactory} with the given - * {@link HttpClient} instance. - * @param httpClient the HttpClient instance to use for this factory - */ - public CommonsClientHttpRequestFactory(HttpClient httpClient) { - Assert.notNull(httpClient, "httpClient must not be null"); - this.httpClient = httpClient; - } - - - /** - * Set the {@code HttpClient} used by this factory. - */ - public void setHttpClient(HttpClient httpClient) { - this.httpClient = httpClient; - } - - /** - * Return the {@code HttpClient} used by this factory. - */ - public HttpClient getHttpClient() { - return this.httpClient; - } - - /** - * Set the connection timeout for the underlying HttpClient. - * A timeout value of 0 specifies an infinite timeout. - * @param timeout the timeout value in milliseconds - * @see org.apache.commons.httpclient.params.HttpConnectionManagerParams#setConnectionTimeout(int) - */ - public void setConnectTimeout(int timeout) { - Assert.isTrue(timeout >= 0, "Timeout must be a non-negative value"); - this.httpClient.getHttpConnectionManager().getParams().setConnectionTimeout(timeout); - } - - /** - * Set the socket read timeout for the underlying HttpClient. - * A timeout value of 0 specifies an infinite timeout. - * @param timeout the timeout value in milliseconds - * @see org.apache.commons.httpclient.params.HttpConnectionManagerParams#setSoTimeout(int) - */ - public void setReadTimeout(int timeout) { - Assert.isTrue(timeout >= 0, "Timeout must be a non-negative value"); - getHttpClient().getHttpConnectionManager().getParams().setSoTimeout(timeout); - } - - - public ClientHttpRequest createRequest(URI uri, HttpMethod httpMethod) throws IOException { - HttpMethodBase commonsHttpMethod = createCommonsHttpMethod(httpMethod, uri.toString()); - postProcessCommonsHttpMethod(commonsHttpMethod); - return new CommonsClientHttpRequest(getHttpClient(), commonsHttpMethod); - } - - /** - * Create a Commons HttpMethodBase object for the given HTTP method - * and URI specification. - * @param httpMethod the HTTP method - * @param uri the URI - * @return the Commons HttpMethodBase object - */ - protected HttpMethodBase createCommonsHttpMethod(HttpMethod httpMethod, String uri) { - switch (httpMethod) { - case GET: - return new GetMethod(uri); - case DELETE: - return new DeleteMethod(uri); - case HEAD: - return new HeadMethod(uri); - case OPTIONS: - return new OptionsMethod(uri); - case POST: - return new PostMethod(uri); - case PUT: - return new PutMethod(uri); - case TRACE: - return new TraceMethod(uri); - case PATCH: - throw new IllegalArgumentException( - "HTTP method PATCH not available before Apache HttpComponents HttpClient 4.2"); - default: - throw new IllegalArgumentException("Invalid HTTP method: " + httpMethod); - } - } - - /** - * Template method that allows for manipulating the {@link org.apache.commons.httpclient.HttpMethodBase} - * before it is returned as part of a {@link CommonsClientHttpRequest}. - *

The default implementation is empty. - * @param httpMethod the Commons HTTP method object to process - */ - protected void postProcessCommonsHttpMethod(HttpMethodBase httpMethod) { - } - - /** - * Shutdown hook that closes the underlying {@link HttpConnectionManager}'s - * connection pool, if any. - */ - public void destroy() { - HttpConnectionManager connectionManager = getHttpClient().getHttpConnectionManager(); - if (connectionManager instanceof MultiThreadedHttpConnectionManager) { - ((MultiThreadedHttpConnectionManager) connectionManager).shutdown(); - } - } - -} diff --git a/spring-web/src/main/java/org/springframework/http/client/CommonsClientHttpResponse.java b/spring-web/src/main/java/org/springframework/http/client/CommonsClientHttpResponse.java deleted file mode 100644 index 0e3f949da39..00000000000 --- a/spring-web/src/main/java/org/springframework/http/client/CommonsClientHttpResponse.java +++ /dev/null @@ -1,77 +0,0 @@ -/* - * Copyright 2002-2012 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.springframework.http.client; - -import java.io.IOException; -import java.io.InputStream; - -import org.apache.commons.httpclient.Header; -import org.apache.commons.httpclient.HttpMethod; - -import org.springframework.http.HttpHeaders; - -/** - * {@link org.springframework.http.client.ClientHttpResponse} implementation that uses - * Apache Commons HttpClient to execute requests. - * - *

Created via the {@link CommonsClientHttpRequest}. - * - * @author Arjen Poutsma - * @since 3.0 - * @see CommonsClientHttpRequest#execute() - * @deprecated In favor of {@link HttpComponentsClientHttpResponse} - */ -@Deprecated -final class CommonsClientHttpResponse extends AbstractClientHttpResponse { - - private final HttpMethod httpMethod; - - private HttpHeaders headers; - - - CommonsClientHttpResponse(HttpMethod httpMethod) { - this.httpMethod = httpMethod; - } - - - public int getRawStatusCode() { - return this.httpMethod.getStatusCode(); - } - - public String getStatusText() { - return this.httpMethod.getStatusText(); - } - - public HttpHeaders getHeaders() { - if (this.headers == null) { - this.headers = new HttpHeaders(); - for (Header header : this.httpMethod.getResponseHeaders()) { - this.headers.add(header.getName(), header.getValue()); - } - } - return this.headers; - } - - public InputStream getBody() throws IOException { - return this.httpMethod.getResponseBodyAsStream(); - } - - public void close() { - this.httpMethod.releaseConnection(); - } - -} diff --git a/spring-web/src/main/java/org/springframework/remoting/httpinvoker/CommonsHttpInvokerRequestExecutor.java b/spring-web/src/main/java/org/springframework/remoting/httpinvoker/CommonsHttpInvokerRequestExecutor.java deleted file mode 100644 index c53e3642268..00000000000 --- a/spring-web/src/main/java/org/springframework/remoting/httpinvoker/CommonsHttpInvokerRequestExecutor.java +++ /dev/null @@ -1,267 +0,0 @@ -/* - * Copyright 2002-2011 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.springframework.remoting.httpinvoker; - -import java.io.ByteArrayOutputStream; -import java.io.IOException; -import java.io.InputStream; -import java.util.zip.GZIPInputStream; - -import org.apache.commons.httpclient.Header; -import org.apache.commons.httpclient.HttpClient; -import org.apache.commons.httpclient.HttpException; -import org.apache.commons.httpclient.MultiThreadedHttpConnectionManager; -import org.apache.commons.httpclient.methods.ByteArrayRequestEntity; -import org.apache.commons.httpclient.methods.PostMethod; - -import org.springframework.context.i18n.LocaleContext; -import org.springframework.context.i18n.LocaleContextHolder; -import org.springframework.remoting.support.RemoteInvocationResult; -import org.springframework.util.Assert; -import org.springframework.util.StringUtils; - -/** - * {@link HttpInvokerRequestExecutor} implementation that uses - * Jakarta Commons HttpClient - * to execute POST requests. Requires Commons HttpClient 3.0 or higher. - * - *

Allows to use a pre-configured {@link org.apache.commons.httpclient.HttpClient} - * instance, potentially with authentication, HTTP connection pooling, etc. - * Also designed for easy subclassing, providing specific template methods. - * - * @author Juergen Hoeller - * @author Mark Fisher - * @since 1.1 - * @see SimpleHttpInvokerRequestExecutor - */ -public class CommonsHttpInvokerRequestExecutor extends AbstractHttpInvokerRequestExecutor { - - /** - * Default timeout value if no HttpClient is explicitly provided. - */ - private static final int DEFAULT_READ_TIMEOUT_MILLISECONDS = (60 * 1000); - - private HttpClient httpClient; - - - /** - * Create a new CommonsHttpInvokerRequestExecutor with a default - * HttpClient that uses a default MultiThreadedHttpConnectionManager. - * Sets the socket read timeout to {@link #DEFAULT_READ_TIMEOUT_MILLISECONDS}. - * @see org.apache.commons.httpclient.HttpClient - * @see org.apache.commons.httpclient.MultiThreadedHttpConnectionManager - */ - public CommonsHttpInvokerRequestExecutor() { - this.httpClient = new HttpClient(new MultiThreadedHttpConnectionManager()); - setReadTimeout(DEFAULT_READ_TIMEOUT_MILLISECONDS); - } - - /** - * Create a new CommonsHttpInvokerRequestExecutor with the given - * HttpClient instance. The socket read timeout of the provided - * HttpClient will not be changed. - * @param httpClient the HttpClient instance to use for this request executor - */ - public CommonsHttpInvokerRequestExecutor(HttpClient httpClient) { - this.httpClient = httpClient; - } - - - /** - * Set the HttpClient instance to use for this request executor. - */ - public void setHttpClient(HttpClient httpClient) { - this.httpClient = httpClient; - } - - /** - * Return the HttpClient instance that this request executor uses. - */ - public HttpClient getHttpClient() { - return this.httpClient; - } - - /** - * Set the connection timeout for the underlying HttpClient. - * A timeout value of 0 specifies an infinite timeout. - * @param timeout the timeout value in milliseconds - * @see org.apache.commons.httpclient.params.HttpConnectionManagerParams#setConnectionTimeout(int) - */ - public void setConnectTimeout(int timeout) { - Assert.isTrue(timeout >= 0, "Timeout must be a non-negative value"); - this.httpClient.getHttpConnectionManager().getParams().setConnectionTimeout(timeout); - } - - /** - * Set the socket read timeout for the underlying HttpClient. - * A timeout value of 0 specifies an infinite timeout. - * @param timeout the timeout value in milliseconds - * @see org.apache.commons.httpclient.params.HttpConnectionManagerParams#setSoTimeout(int) - * @see #DEFAULT_READ_TIMEOUT_MILLISECONDS - */ - public void setReadTimeout(int timeout) { - Assert.isTrue(timeout >= 0, "Timeout must be a non-negative value"); - this.httpClient.getHttpConnectionManager().getParams().setSoTimeout(timeout); - } - - - /** - * Execute the given request through Commons HttpClient. - *

This method implements the basic processing workflow: - * The actual work happens in this class's template methods. - * @see #createPostMethod - * @see #setRequestBody - * @see #executePostMethod - * @see #validateResponse - * @see #getResponseBody - */ - @Override - protected RemoteInvocationResult doExecuteRequest( - HttpInvokerClientConfiguration config, ByteArrayOutputStream baos) - throws IOException, ClassNotFoundException { - - PostMethod postMethod = createPostMethod(config); - try { - setRequestBody(config, postMethod, baos); - executePostMethod(config, getHttpClient(), postMethod); - validateResponse(config, postMethod); - InputStream responseBody = getResponseBody(config, postMethod); - return readRemoteInvocationResult(responseBody, config.getCodebaseUrl()); - } - finally { - // Need to explicitly release because it might be pooled. - postMethod.releaseConnection(); - } - } - - /** - * Create a PostMethod for the given configuration. - *

The default implementation creates a standard PostMethod with - * "application/x-java-serialized-object" as "Content-Type" header. - * @param config the HTTP invoker configuration that specifies the - * target service - * @return the PostMethod instance - * @throws IOException if thrown by I/O methods - */ - protected PostMethod createPostMethod(HttpInvokerClientConfiguration config) throws IOException { - PostMethod postMethod = new PostMethod(config.getServiceUrl()); - LocaleContext locale = LocaleContextHolder.getLocaleContext(); - if (locale != null) { - postMethod.addRequestHeader(HTTP_HEADER_ACCEPT_LANGUAGE, StringUtils.toLanguageTag(locale.getLocale())); - } - if (isAcceptGzipEncoding()) { - postMethod.addRequestHeader(HTTP_HEADER_ACCEPT_ENCODING, ENCODING_GZIP); - } - return postMethod; - } - - /** - * Set the given serialized remote invocation as request body. - *

The default implementation simply sets the serialized invocation as the - * PostMethod's request body. This can be overridden, for example, to write a - * specific encoding and to potentially set appropriate HTTP request headers. - * @param config the HTTP invoker configuration that specifies the target service - * @param postMethod the PostMethod to set the request body on - * @param baos the ByteArrayOutputStream that contains the serialized - * RemoteInvocation object - * @throws IOException if thrown by I/O methods - * @see org.apache.commons.httpclient.methods.PostMethod#setRequestBody(java.io.InputStream) - * @see org.apache.commons.httpclient.methods.PostMethod#setRequestEntity - * @see org.apache.commons.httpclient.methods.InputStreamRequestEntity - */ - protected void setRequestBody( - HttpInvokerClientConfiguration config, PostMethod postMethod, ByteArrayOutputStream baos) - throws IOException { - - postMethod.setRequestEntity(new ByteArrayRequestEntity(baos.toByteArray(), getContentType())); - } - - /** - * Execute the given PostMethod instance. - * @param config the HTTP invoker configuration that specifies the target service - * @param httpClient the HttpClient to execute on - * @param postMethod the PostMethod to execute - * @throws IOException if thrown by I/O methods - * @see org.apache.commons.httpclient.HttpClient#executeMethod(org.apache.commons.httpclient.HttpMethod) - */ - protected void executePostMethod( - HttpInvokerClientConfiguration config, HttpClient httpClient, PostMethod postMethod) - throws IOException { - - httpClient.executeMethod(postMethod); - } - - /** - * Validate the given response as contained in the PostMethod object, - * throwing an exception if it does not correspond to a successful HTTP response. - *

Default implementation rejects any HTTP status code beyond 2xx, to avoid - * parsing the response body and trying to deserialize from a corrupted stream. - * @param config the HTTP invoker configuration that specifies the target service - * @param postMethod the executed PostMethod to validate - * @throws IOException if validation failed - * @see org.apache.commons.httpclient.methods.PostMethod#getStatusCode() - * @see org.apache.commons.httpclient.HttpException - */ - protected void validateResponse(HttpInvokerClientConfiguration config, PostMethod postMethod) - throws IOException { - - if (postMethod.getStatusCode() >= 300) { - throw new HttpException( - "Did not receive successful HTTP response: status code = " + postMethod.getStatusCode() + - ", status message = [" + postMethod.getStatusText() + "]"); - } - } - - /** - * Extract the response body from the given executed remote invocation request. - *

The default implementation simply fetches the PostMethod's response body stream. - * If the response is recognized as GZIP response, the InputStream will get wrapped - * in a GZIPInputStream. - * @param config the HTTP invoker configuration that specifies the target service - * @param postMethod the PostMethod to read the response body from - * @return an InputStream for the response body - * @throws IOException if thrown by I/O methods - * @see #isGzipResponse - * @see java.util.zip.GZIPInputStream - * @see org.apache.commons.httpclient.methods.PostMethod#getResponseBodyAsStream() - * @see org.apache.commons.httpclient.methods.PostMethod#getResponseHeader(String) - */ - protected InputStream getResponseBody(HttpInvokerClientConfiguration config, PostMethod postMethod) - throws IOException { - - if (isGzipResponse(postMethod)) { - return new GZIPInputStream(postMethod.getResponseBodyAsStream()); - } - else { - return postMethod.getResponseBodyAsStream(); - } - } - - /** - * Determine whether the given response indicates a GZIP response. - *

The default implementation checks whether the HTTP "Content-Encoding" - * header contains "gzip" (in any casing). - * @param postMethod the PostMethod to check - * @return whether the given response indicates a GZIP response - */ - protected boolean isGzipResponse(PostMethod postMethod) { - Header encodingHeader = postMethod.getResponseHeader(HTTP_HEADER_CONTENT_ENCODING); - return (encodingHeader != null && encodingHeader.getValue() != null && - encodingHeader.getValue().toLowerCase().contains(ENCODING_GZIP)); - } - -} diff --git a/spring-web/src/test/java/org/springframework/http/client/CommonsHttpRequestFactoryTests.java b/spring-web/src/test/java/org/springframework/http/client/CommonsHttpRequestFactoryTests.java deleted file mode 100644 index c067159017e..00000000000 --- a/spring-web/src/test/java/org/springframework/http/client/CommonsHttpRequestFactoryTests.java +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Copyright 2002-2012 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.springframework.http.client; - -import java.net.URI; - -import org.junit.Test; -import org.springframework.http.HttpMethod; - -@Deprecated -public class CommonsHttpRequestFactoryTests extends AbstractHttpRequestFactoryTestCase { - - @Override - protected ClientHttpRequestFactory createRequestFactory() { - return new CommonsClientHttpRequestFactory(); - } - - @Test(expected=IllegalArgumentException.class) - public void httpPatch() throws Exception { - factory.createRequest(new URI(baseUrl + "/methods/PATCH"), HttpMethod.PATCH); - } - -}