You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hc.apache.org by ol...@apache.org on 2012/09/23 14:15:05 UTC
svn commit: r1389028 - in /httpcomponents/httpcore/trunk:
httpcore-nio/src/main/java/org/apache/http/impl/nio/
httpcore/src/examples/org/apache/http/examples/
httpcore/src/main/java/org/apache/http/impl/
httpcore/src/main/java/org/apache/http/impl/pool...
Author: olegk
Date: Sun Sep 23 12:15:04 2012
New Revision: 1389028
URL: http://svn.apache.org/viewvc?rev=1389028&view=rev
Log:
Rewrite of blocking HTTP connection implementations: deprecated DefaultHttpClientConnection / DefaultHttpServerConnection and related classes in favor of DefaultBHttpClientConnection / DefaultBHttpServerConnection
Added:
httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/impl/DefaultBHttpClientConnection.java (with props)
httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/impl/DefaultBHttpServerConnection.java (with props)
Modified:
httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/impl/nio/NHttpConnectionBase.java
httpcomponents/httpcore/trunk/httpcore/src/examples/org/apache/http/examples/ElementalHttpGet.java
httpcomponents/httpcore/trunk/httpcore/src/examples/org/apache/http/examples/ElementalHttpPost.java
httpcomponents/httpcore/trunk/httpcore/src/examples/org/apache/http/examples/ElementalHttpServer.java
httpcomponents/httpcore/trunk/httpcore/src/examples/org/apache/http/examples/ElementalReverseProxy.java
httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/impl/AbstractHttpClientConnection.java
httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/impl/AbstractHttpServerConnection.java
httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/impl/BHttpConnectionBase.java
httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/impl/DefaultHttpClientConnection.java
httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/impl/DefaultHttpServerConnection.java
httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/impl/SocketHttpClientConnection.java
httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/impl/SocketHttpServerConnection.java
httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/impl/pool/BasicConnFactory.java
httpcomponents/httpcore/trunk/httpcore/src/test/java/org/apache/http/integration/TestSyncHttp.java
httpcomponents/httpcore/trunk/httpcore/src/test/java/org/apache/http/testserver/HttpServer.java
Modified: httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/impl/nio/NHttpConnectionBase.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/impl/nio/NHttpConnectionBase.java?rev=1389028&r1=1389027&r2=1389028&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/impl/nio/NHttpConnectionBase.java (original)
+++ httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/impl/nio/NHttpConnectionBase.java Sun Sep 23 12:15:04 2012
@@ -85,10 +85,9 @@ import org.apache.http.util.CharsetUtils
import org.apache.http.util.NetUtils;
/**
- * This class serves as a base for all {@link NHttpConnection} implementations
- * and implements functionality common to both client and server
- * HTTP connections.
- * <p>
+ * This class serves as a base for all {@link NHttpConnection} implementations and provides
+ * functionality common to both client and server HTTP connections.
+ * <p/>
* The following parameters can be used to customize the behavior of this
* class:
* <ul>
Modified: httpcomponents/httpcore/trunk/httpcore/src/examples/org/apache/http/examples/ElementalHttpGet.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore/src/examples/org/apache/http/examples/ElementalHttpGet.java?rev=1389028&r1=1389027&r2=1389028&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore/src/examples/org/apache/http/examples/ElementalHttpGet.java (original)
+++ httpcomponents/httpcore/trunk/httpcore/src/examples/org/apache/http/examples/ElementalHttpGet.java Sun Sep 23 12:15:04 2012
@@ -34,8 +34,8 @@ import org.apache.http.HttpHost;
import org.apache.http.HttpRequestInterceptor;
import org.apache.http.HttpResponse;
import org.apache.http.HttpVersion;
+import org.apache.http.impl.DefaultBHttpClientConnection;
import org.apache.http.impl.DefaultConnectionReuseStrategy;
-import org.apache.http.impl.DefaultHttpClientConnection;
import org.apache.http.message.BasicHttpRequest;
import org.apache.http.params.HttpCoreConfigBuilder;
import org.apache.http.params.HttpParams;
@@ -81,7 +81,7 @@ public class ElementalHttpGet {
HttpContext context = new BasicHttpContext(null);
HttpHost host = new HttpHost("localhost", 8080);
- DefaultHttpClientConnection conn = new DefaultHttpClientConnection();
+ DefaultBHttpClientConnection conn = new DefaultBHttpClientConnection(params);
ConnectionReuseStrategy connStrategy = DefaultConnectionReuseStrategy.INSTANCE;
context.setAttribute(ExecutionContext.HTTP_CONNECTION, conn);
@@ -97,7 +97,7 @@ public class ElementalHttpGet {
for (int i = 0; i < targets.length; i++) {
if (!conn.isOpen()) {
Socket socket = new Socket(host.getHostName(), host.getPort());
- conn.bind(socket, params);
+ conn.bind(socket);
}
BasicHttpRequest request = new BasicHttpRequest("GET", targets[i]);
System.out.println(">> Request URI: " + request.getRequestLine().getUri());
Modified: httpcomponents/httpcore/trunk/httpcore/src/examples/org/apache/http/examples/ElementalHttpPost.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore/src/examples/org/apache/http/examples/ElementalHttpPost.java?rev=1389028&r1=1389027&r2=1389028&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore/src/examples/org/apache/http/examples/ElementalHttpPost.java (original)
+++ httpcomponents/httpcore/trunk/httpcore/src/examples/org/apache/http/examples/ElementalHttpPost.java Sun Sep 23 12:15:04 2012
@@ -39,8 +39,8 @@ import org.apache.http.HttpVersion;
import org.apache.http.entity.ByteArrayEntity;
import org.apache.http.entity.InputStreamEntity;
import org.apache.http.entity.StringEntity;
+import org.apache.http.impl.DefaultBHttpClientConnection;
import org.apache.http.impl.DefaultConnectionReuseStrategy;
-import org.apache.http.impl.DefaultHttpClientConnection;
import org.apache.http.message.BasicHttpEntityEnclosingRequest;
import org.apache.http.params.HttpCoreConfigBuilder;
import org.apache.http.params.HttpParams;
@@ -88,7 +88,7 @@ public class ElementalHttpPost {
HttpHost host = new HttpHost("localhost", 8080);
- DefaultHttpClientConnection conn = new DefaultHttpClientConnection();
+ DefaultBHttpClientConnection conn = new DefaultBHttpClientConnection(params);
ConnectionReuseStrategy connStrategy = DefaultConnectionReuseStrategy.INSTANCE;
context.setAttribute(ExecutionContext.HTTP_CONNECTION, conn);
@@ -110,7 +110,7 @@ public class ElementalHttpPost {
for (int i = 0; i < requestBodies.length; i++) {
if (!conn.isOpen()) {
Socket socket = new Socket(host.getHostName(), host.getPort());
- conn.bind(socket, params);
+ conn.bind(socket);
}
BasicHttpEntityEnclosingRequest request = new BasicHttpEntityEnclosingRequest("POST",
"/servlets-examples/servlet/RequestInfoExample");
Modified: httpcomponents/httpcore/trunk/httpcore/src/examples/org/apache/http/examples/ElementalHttpServer.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore/src/examples/org/apache/http/examples/ElementalHttpServer.java?rev=1389028&r1=1389027&r2=1389028&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore/src/examples/org/apache/http/examples/ElementalHttpServer.java (original)
+++ httpcomponents/httpcore/trunk/httpcore/src/examples/org/apache/http/examples/ElementalHttpServer.java Sun Sep 23 12:15:04 2012
@@ -49,9 +49,9 @@ import org.apache.http.MethodNotSupporte
import org.apache.http.entity.ContentType;
import org.apache.http.entity.FileEntity;
import org.apache.http.entity.StringEntity;
+import org.apache.http.impl.DefaultBHttpServerConnection;
import org.apache.http.impl.DefaultConnectionReuseStrategy;
import org.apache.http.impl.DefaultHttpResponseFactory;
-import org.apache.http.impl.DefaultHttpServerConnection;
import org.apache.http.params.BasicHttpParams;
import org.apache.http.params.CoreConnectionPNames;
import org.apache.http.params.CoreProtocolPNames;
@@ -190,9 +190,9 @@ public class ElementalHttpServer {
try {
// Set up HTTP connection
Socket socket = this.serversocket.accept();
- DefaultHttpServerConnection conn = new DefaultHttpServerConnection();
+ DefaultBHttpServerConnection conn = new DefaultBHttpServerConnection(this.params);
System.out.println("Incoming connection from " + socket.getInetAddress());
- conn.bind(socket, this.params);
+ conn.bind(socket);
// Start worker thread
Thread t = new WorkerThread(this.httpService, conn);
Modified: httpcomponents/httpcore/trunk/httpcore/src/examples/org/apache/http/examples/ElementalReverseProxy.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore/src/examples/org/apache/http/examples/ElementalReverseProxy.java?rev=1389028&r1=1389027&r2=1389028&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore/src/examples/org/apache/http/examples/ElementalReverseProxy.java (original)
+++ httpcomponents/httpcore/trunk/httpcore/src/examples/org/apache/http/examples/ElementalReverseProxy.java Sun Sep 23 12:15:04 2012
@@ -42,10 +42,10 @@ import org.apache.http.HttpRequestInterc
import org.apache.http.HttpResponse;
import org.apache.http.HttpResponseInterceptor;
import org.apache.http.HttpServerConnection;
+import org.apache.http.impl.DefaultBHttpClientConnection;
+import org.apache.http.impl.DefaultBHttpServerConnection;
import org.apache.http.impl.DefaultConnectionReuseStrategy;
-import org.apache.http.impl.DefaultHttpClientConnection;
import org.apache.http.impl.DefaultHttpResponseFactory;
-import org.apache.http.impl.DefaultHttpServerConnection;
import org.apache.http.params.BasicHttpParams;
import org.apache.http.params.CoreConnectionPNames;
import org.apache.http.params.CoreProtocolPNames;
@@ -230,14 +230,14 @@ public class ElementalReverseProxy {
try {
// Set up incoming HTTP connection
Socket insocket = this.serversocket.accept();
- DefaultHttpServerConnection inconn = new DefaultHttpServerConnection();
+ DefaultBHttpServerConnection inconn = new DefaultBHttpServerConnection(this.params);
System.out.println("Incoming connection from " + insocket.getInetAddress());
- inconn.bind(insocket, this.params);
+ inconn.bind(insocket);
// Set up outgoing HTTP connection
Socket outsocket = new Socket(this.target.getHostName(), this.target.getPort());
- DefaultHttpClientConnection outconn = new DefaultHttpClientConnection();
- outconn.bind(outsocket, this.params);
+ DefaultBHttpClientConnection outconn = new DefaultBHttpClientConnection(this.params);
+ outconn.bind(outsocket);
System.out.println("Outgoing connection to " + outsocket.getInetAddress());
// Start worker thread
Modified: httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/impl/AbstractHttpClientConnection.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/impl/AbstractHttpClientConnection.java?rev=1389028&r1=1389027&r2=1389028&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/impl/AbstractHttpClientConnection.java (original)
+++ httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/impl/AbstractHttpClientConnection.java Sun Sep 23 12:15:04 2012
@@ -71,8 +71,11 @@ import org.apache.http.util.Args;
* </ul>
*
* @since 4.0
+ *
+ * @deprecated (4.3) use {@link DefaultBHttpClientConnection}
*/
@NotThreadSafe
+@Deprecated
public abstract class AbstractHttpClientConnection implements HttpClientConnection {
private final EntitySerializer entityserializer;
Modified: httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/impl/AbstractHttpServerConnection.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/impl/AbstractHttpServerConnection.java?rev=1389028&r1=1389027&r2=1389028&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/impl/AbstractHttpServerConnection.java (original)
+++ httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/impl/AbstractHttpServerConnection.java Sun Sep 23 12:15:04 2012
@@ -71,8 +71,11 @@ import org.apache.http.util.Args;
* </ul>
*
* @since 4.0
+ *
+ * @deprecated (4.3) use {@link DefaultBHttpServerConnection}
*/
@NotThreadSafe
+@Deprecated
public abstract class AbstractHttpServerConnection implements HttpServerConnection {
private final EntitySerializer entityserializer;
Modified: httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/impl/BHttpConnectionBase.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/impl/BHttpConnectionBase.java?rev=1389028&r1=1389027&r2=1389028&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/impl/BHttpConnectionBase.java (original)
+++ httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/impl/BHttpConnectionBase.java Sun Sep 23 12:15:04 2012
@@ -75,10 +75,9 @@ import org.apache.http.util.CharsetUtils
import org.apache.http.util.NetUtils;
/**
- * Implementation of a client-side HTTP connection that can be bound to an
- * arbitrary {@link Socket} for receiving data from and transmitting data to
- * a remote server.
- * <p>
+ * This class serves as a base for all {@link HttpConnection} implementations and provides
+ * functionality common to both client and server HTTP connections.
+ * <p/>
* The following parameters can be used to customize the behavior of this
* class:
* <ul>
@@ -104,9 +103,6 @@ public class BHttpConnectionBase impleme
private final ContentLengthStrategy incomingContentStrategy;
private final ContentLengthStrategy outgoingContentStrategy;
- private InputStream instream;
- private OutputStream outstream;
-
private volatile boolean open;
private volatile Socket socket;
@@ -175,6 +171,18 @@ public class BHttpConnectionBase impleme
this.outbuffer.bind(socket.getOutputStream());
}
+ protected SessionInputBuffer getSessionInputBuffer() {
+ return this.inbuffer;
+ }
+
+ protected SessionOutputBuffer getSessionOutputBuffer() {
+ return this.outbuffer;
+ }
+
+ protected void doFlush() throws IOException {
+ this.outbuffer.flush();
+ }
+
public boolean isOpen() {
return this.open;
}
@@ -201,16 +209,6 @@ public class BHttpConnectionBase impleme
return new StrictContentLengthStrategy();
}
- protected OutputStream getOutputStream() {
- Asserts.check(this.outstream != null, "Output stream");
- return this.outstream;
- }
-
- protected InputStream getInputStream() {
- Asserts.check(this.instream != null, "Input stream");
- return this.instream;
- }
-
protected OutputStream createOutputStream(
final long len,
final SessionOutputBuffer outbuffer) {
@@ -223,30 +221,9 @@ public class BHttpConnectionBase impleme
}
}
- protected HttpEntity prepareOutputStream(final HttpMessage message) throws HttpException {
- BasicHttpEntity entity = new BasicHttpEntity();
+ protected OutputStream prepareOutput(final HttpMessage message) throws HttpException {
long len = this.outgoingContentStrategy.determineLength(message);
- this.outstream = createOutputStream(len, this.outbuffer);
- if (len == ContentLengthStrategy.CHUNKED) {
- entity.setChunked(true);
- entity.setContentLength(-1);
- } else if (len == ContentLengthStrategy.IDENTITY) {
- entity.setChunked(false);
- entity.setContentLength(-1);
- } else {
- entity.setChunked(false);
- entity.setContentLength(len);
- }
-
- Header contentTypeHeader = message.getFirstHeader(HTTP.CONTENT_TYPE);
- if (contentTypeHeader != null) {
- entity.setContentType(contentTypeHeader);
- }
- Header contentEncodingHeader = message.getFirstHeader(HTTP.CONTENT_ENCODING);
- if (contentEncodingHeader != null) {
- entity.setContentEncoding(contentEncodingHeader);
- }
- return entity;
+ return createOutputStream(len, this.outbuffer);
}
protected InputStream createInputStream(
@@ -261,23 +238,23 @@ public class BHttpConnectionBase impleme
}
}
- protected HttpEntity prepareInputStream(final HttpMessage message) throws HttpException {
+ protected HttpEntity prepareInput(final HttpMessage message) throws HttpException {
BasicHttpEntity entity = new BasicHttpEntity();
long len = this.incomingContentStrategy.determineLength(message);
- this.instream = createInputStream(len, this.inbuffer);
+ InputStream instream = createInputStream(len, this.inbuffer);
if (len == ContentLengthStrategy.CHUNKED) {
entity.setChunked(true);
entity.setContentLength(-1);
- entity.setContent(this.instream);
+ entity.setContent(instream);
} else if (len == ContentLengthStrategy.IDENTITY) {
entity.setChunked(false);
entity.setContentLength(-1);
- entity.setContent(this.instream);
+ entity.setContent(instream);
} else {
entity.setChunked(false);
entity.setContentLength(len);
- entity.setContent(this.instream);
+ entity.setContent(instream);
}
Header contentTypeHeader = message.getFirstHeader(HTTP.CONTENT_TYPE);
@@ -381,24 +358,26 @@ public class BHttpConnectionBase impleme
}
}
+ protected boolean awaitInput(int timeout) throws IOException {
+ if (this.inbuffer.hasBufferedData()) {
+ return true;
+ }
+ int oldtimeout = this.socket.getSoTimeout();
+ try {
+ this.socket.setSoTimeout(1);
+ int i = this.inbuffer.fillBuffer();
+ return i != -1;
+ } finally {
+ this.socket.setSoTimeout(oldtimeout);
+ }
+ }
+
public boolean isStale() {
if (!isOpen()) {
return true;
}
- if (this.inbuffer.hasBufferedData()) {
- return false;
- }
try {
- int oldtimeout = this.socket.getSoTimeout();
- try {
- this.socket.setSoTimeout(1);
- int i = this.inbuffer.fillBuffer();
- return i == -1;
- } catch (SocketTimeoutException ex) {
- throw ex;
- } finally {
- this.socket.setSoTimeout(oldtimeout);
- }
+ return !awaitInput(1);
} catch (SocketTimeoutException ex) {
return false;
} catch (IOException ex) {
@@ -406,6 +385,14 @@ public class BHttpConnectionBase impleme
}
}
+ protected void incrementRequestCount() {
+ this.connMetrics.incrementRequestCount();
+ }
+
+ protected void incrementResponseCount() {
+ this.connMetrics.incrementResponseCount();
+ }
+
public HttpConnectionMetrics getMetrics() {
return this.connMetrics;
}
Added: httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/impl/DefaultBHttpClientConnection.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/impl/DefaultBHttpClientConnection.java?rev=1389028&view=auto
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/impl/DefaultBHttpClientConnection.java (added)
+++ httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/impl/DefaultBHttpClientConnection.java Sun Sep 23 12:15:04 2012
@@ -0,0 +1,194 @@
+/*
+ * ====================================================================
+ * 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 org.apache.http.impl;
+
+import java.io.IOException;
+import java.io.OutputStream;
+import java.net.Socket;
+import java.net.SocketTimeoutException;
+
+import org.apache.http.HttpClientConnection;
+import org.apache.http.HttpEntity;
+import org.apache.http.HttpEntityEnclosingRequest;
+import org.apache.http.HttpException;
+import org.apache.http.HttpRequest;
+import org.apache.http.HttpResponse;
+import org.apache.http.HttpResponseFactory;
+import org.apache.http.annotation.NotThreadSafe;
+import org.apache.http.impl.io.DefaultHttpRequestWriter;
+import org.apache.http.impl.io.DefaultHttpResponseParser;
+import org.apache.http.io.HttpMessageParser;
+import org.apache.http.io.HttpMessageWriter;
+import org.apache.http.io.SessionInputBuffer;
+import org.apache.http.io.SessionOutputBuffer;
+import org.apache.http.message.BasicLineFormatter;
+import org.apache.http.message.BasicLineParser;
+import org.apache.http.message.LineFormatter;
+import org.apache.http.message.LineParser;
+import org.apache.http.params.CoreConnectionPNames;
+import org.apache.http.params.HttpParams;
+import org.apache.http.util.Args;
+
+/**
+ * Default implementation of {@link HttpClientConnection}.
+ * <p/>
+ * The following parameters can be used to customize the behavior of this
+ * class:
+ * <ul>
+ * <li>{@link org.apache.http.params.CoreProtocolPNames#HTTP_ELEMENT_CHARSET}</li>
+ * <li>{@link org.apache.http.params.CoreProtocolPNames#HTTP_MALFORMED_INPUT_ACTION}</li>
+ * <li>{@link org.apache.http.params.CoreProtocolPNames#HTTP_UNMAPPABLE_INPUT_ACTION}</li>
+ * <li>{@link org.apache.http.params.CoreConnectionPNames#SOCKET_BUFFER_SIZE}</li>
+ * <li>{@link org.apache.http.params.CoreConnectionPNames#MAX_LINE_LENGTH}</li>
+ * <li>{@link org.apache.http.params.CoreConnectionPNames#MAX_HEADER_COUNT}</li>
+ * <li>{@link org.apache.http.params.CoreConnectionPNames#MIN_CHUNK_LIMIT}</li>
+ * </ul>
+ *
+ * @since 4.3
+ */
+@NotThreadSafe
+public class DefaultBHttpClientConnection extends BHttpConnectionBase
+ implements HttpClientConnection {
+
+ private final HttpMessageParser<HttpResponse> responseParser;
+ private final HttpMessageWriter<HttpRequest> requestWriter;
+
+ public DefaultBHttpClientConnection(
+ final LineParser lineParser,
+ final LineFormatter lineFormatter,
+ final HttpResponseFactory responseFactory,
+ final HttpParams params) {
+ super(params);
+ this.responseParser = createResponseParser(
+ getSessionInputBuffer(), lineParser, responseFactory, params);
+ this.requestWriter = createRequestWriter(
+ getSessionOutputBuffer(), lineFormatter, params);
+ }
+
+ public DefaultBHttpClientConnection(final HttpParams params) {
+ this(null, null, null, params);
+ }
+
+ /**
+ * Creates an instance of {@link HttpMessageParser} to be used for parsing
+ * HTTP responses received over this connection.
+ *
+ * @param buffer the session input buffer.
+ * @param lineParser the line parser. If <code>null</code> {@link BasicLineParser#INSTANCE}
+ * will be used
+ * @param responseFactory the response factory. If <code>null</code>
+ * {@link DefaultHttpResponseFactory#INSTANCE} will be used.
+ * @param params HTTP parameters.
+ * @return HTTP response parser.
+ */
+ protected HttpMessageParser<HttpResponse> createResponseParser(
+ final SessionInputBuffer buffer,
+ final LineParser lineParser,
+ final HttpResponseFactory responseFactory,
+ final HttpParams params) {
+ int maxHeaderCount = params.getIntParameter(CoreConnectionPNames.MAX_HEADER_COUNT, -1);
+ int maxLineLen = params.getIntParameter(CoreConnectionPNames.MAX_LINE_LENGTH, -1);
+ return new DefaultHttpResponseParser(
+ buffer, maxHeaderCount, maxLineLen, lineParser, responseFactory);
+ }
+
+ /**
+ * Creates an instance of {@link HttpMessageWriter} to be used for
+ * writing out HTTP requests sent over this connection.
+ *
+ * @param buffer the session output buffer
+ * @param lineFormatter the line formatter. If <code>null</code>
+ * {@link BasicLineFormatter#INSTANCE} will be used.
+ * @param params HTTP parameters
+ * @return HTTP request writer
+ */
+ protected HttpMessageWriter<HttpRequest> createRequestWriter(
+ final SessionOutputBuffer buffer,
+ final LineFormatter lineFormatter,
+ final HttpParams params) {
+ return new DefaultHttpRequestWriter(buffer, lineFormatter);
+ }
+
+ @Override
+ public void bind(final Socket socket) throws IOException {
+ super.bind(socket);
+ }
+
+ public boolean isResponseAvailable(int timeout) throws IOException {
+ assertOpen();
+ try {
+ return awaitInput(timeout);
+ } catch (SocketTimeoutException ex) {
+ return false;
+ }
+ }
+
+ public void sendRequestHeader(final HttpRequest request)
+ throws HttpException, IOException {
+ Args.notNull(request, "HTTP request");
+ assertOpen();
+ this.requestWriter.write(request);
+ incrementRequestCount();
+ }
+
+ public void sendRequestEntity(final HttpEntityEnclosingRequest request)
+ throws HttpException, IOException {
+ Args.notNull(request, "HTTP request");
+ assertOpen();
+ HttpEntity entity = request.getEntity();
+ if (entity == null) {
+ return;
+ }
+ OutputStream outstream = prepareOutput(request);
+ entity.writeTo(outstream);
+ outstream.close();
+ }
+
+ public HttpResponse receiveResponseHeader() throws HttpException, IOException {
+ assertOpen();
+ HttpResponse response = this.responseParser.parse();
+ if (response.getStatusLine().getStatusCode() >= 200) {
+ incrementResponseCount();
+ }
+ return response;
+ }
+
+ public void receiveResponseEntity(
+ final HttpResponse response) throws HttpException, IOException {
+ Args.notNull(response, "HTTP response");
+ assertOpen();
+ HttpEntity entity = prepareInput(response);
+ response.setEntity(entity);
+ }
+
+ public void flush() throws IOException {
+ assertOpen();
+ doFlush();
+ }
+
+}
Propchange: httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/impl/DefaultBHttpClientConnection.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/impl/DefaultBHttpClientConnection.java
------------------------------------------------------------------------------
svn:keywords = Date Revision
Propchange: httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/impl/DefaultBHttpClientConnection.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/impl/DefaultBHttpServerConnection.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/impl/DefaultBHttpServerConnection.java?rev=1389028&view=auto
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/impl/DefaultBHttpServerConnection.java (added)
+++ httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/impl/DefaultBHttpServerConnection.java Sun Sep 23 12:15:04 2012
@@ -0,0 +1,193 @@
+/*
+ * ====================================================================
+ * 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 org.apache.http.impl;
+
+import java.io.IOException;
+import java.io.OutputStream;
+import java.net.Socket;
+
+import org.apache.http.HttpEntity;
+import org.apache.http.HttpEntityEnclosingRequest;
+import org.apache.http.HttpException;
+import org.apache.http.HttpRequest;
+import org.apache.http.HttpRequestFactory;
+import org.apache.http.HttpResponse;
+import org.apache.http.HttpServerConnection;
+import org.apache.http.annotation.NotThreadSafe;
+import org.apache.http.entity.ContentLengthStrategy;
+import org.apache.http.impl.entity.DisallowIdentityContentLengthStrategy;
+import org.apache.http.impl.entity.LaxContentLengthStrategy;
+import org.apache.http.impl.io.DefaultHttpRequestParser;
+import org.apache.http.impl.io.DefaultHttpResponseWriter;
+import org.apache.http.io.HttpMessageParser;
+import org.apache.http.io.HttpMessageWriter;
+import org.apache.http.io.SessionInputBuffer;
+import org.apache.http.io.SessionOutputBuffer;
+import org.apache.http.message.BasicLineFormatter;
+import org.apache.http.message.BasicLineParser;
+import org.apache.http.message.LineFormatter;
+import org.apache.http.message.LineParser;
+import org.apache.http.params.CoreConnectionPNames;
+import org.apache.http.params.HttpParams;
+import org.apache.http.util.Args;
+
+/**
+ * Default implementation of {@link HttpServerConnection}.
+ * <p/>
+ * The following parameters can be used to customize the behavior of this
+ * class:
+ * <ul>
+ * <li>{@link org.apache.http.params.CoreProtocolPNames#HTTP_ELEMENT_CHARSET}</li>
+ * <li>{@link org.apache.http.params.CoreProtocolPNames#HTTP_MALFORMED_INPUT_ACTION}</li>
+ * <li>{@link org.apache.http.params.CoreProtocolPNames#HTTP_UNMAPPABLE_INPUT_ACTION}</li>
+ * <li>{@link org.apache.http.params.CoreConnectionPNames#SOCKET_BUFFER_SIZE}</li>
+ * <li>{@link org.apache.http.params.CoreConnectionPNames#MAX_LINE_LENGTH}</li>
+ * <li>{@link org.apache.http.params.CoreConnectionPNames#MAX_HEADER_COUNT}</li>
+ * <li>{@link org.apache.http.params.CoreConnectionPNames#MIN_CHUNK_LIMIT}</li>
+ * </ul>
+ *
+ * @since 4.3
+ */
+@NotThreadSafe
+public class DefaultBHttpServerConnection extends BHttpConnectionBase
+ implements HttpServerConnection {
+
+ private final HttpMessageParser<HttpRequest> requestParser;
+ private final HttpMessageWriter<HttpResponse> responseWriter;
+
+ public DefaultBHttpServerConnection(
+ final LineParser lineParser,
+ final LineFormatter lineFormatter,
+ final HttpRequestFactory requestFactory,
+ final HttpParams params) {
+ super(params);
+ this.requestParser = createRequestParser(
+ getSessionInputBuffer(), lineParser, requestFactory, params);
+ this.responseWriter = createResponseWriter(
+ getSessionOutputBuffer(), lineFormatter, params);
+ }
+
+ public DefaultBHttpServerConnection(final HttpParams params) {
+ this(null, null, null, params);
+ }
+
+ @Override
+ protected ContentLengthStrategy createIncomingContentStrategy() {
+ return new DisallowIdentityContentLengthStrategy(new LaxContentLengthStrategy(0));
+ }
+
+ /**
+ * Creates an instance of {@link HttpMessageParser} to be used for parsing
+ * HTTP requests received over this connection.
+ *
+ * @param buffer the session input buffer.
+ * @param lineParser the line parser. If <code>null</code> {@link BasicLineParser#INSTANCE}
+ * will be used
+ * @param responseFactory the response factory. If <code>null</code>
+ * {@link DefaultHttpRequestFactory#INSTANCE} will be used.
+ * @param params HTTP parameters.
+ * @return HTTP message parser.
+ */
+ protected HttpMessageParser<HttpRequest> createRequestParser(
+ final SessionInputBuffer buffer,
+ final LineParser lineParser,
+ final HttpRequestFactory requestFactory,
+ final HttpParams params) {
+ int maxHeaderCount = params.getIntParameter(CoreConnectionPNames.MAX_HEADER_COUNT, -1);
+ int maxLineLen = params.getIntParameter(CoreConnectionPNames.MAX_LINE_LENGTH, -1);
+ return new DefaultHttpRequestParser(
+ buffer, maxHeaderCount, maxLineLen, lineParser, requestFactory);
+ }
+
+ /**
+ * Creates an instance of {@link HttpMessageWriter} to be used for
+ * writing out HTTP responses sent over this connection.
+ *
+ * @param buffer the session output buffer
+ * @param lineFormatter the line formatter. If <code>null</code>
+ * {@link BasicLineFormatter#INSTANCE} will be used.
+ * @param params HTTP parameters
+ * @return HTTP message writer
+ */
+ protected HttpMessageWriter<HttpResponse> createResponseWriter(
+ final SessionOutputBuffer buffer,
+ final LineFormatter lineFormatter,
+ final HttpParams params) {
+ return new DefaultHttpResponseWriter(buffer, lineFormatter);
+ }
+
+ @Override
+ public void bind(final Socket socket) throws IOException {
+ super.bind(socket);
+ }
+
+ public HttpRequest receiveRequestHeader()
+ throws HttpException, IOException {
+ assertOpen();
+ HttpRequest request = this.requestParser.parse();
+ incrementRequestCount();
+ return request;
+ }
+
+ public void receiveRequestEntity(final HttpEntityEnclosingRequest request)
+ throws HttpException, IOException {
+ Args.notNull(request, "HTTP request");
+ assertOpen();
+ HttpEntity entity = prepareInput(request);
+ request.setEntity(entity);
+ }
+
+ public void sendResponseHeader(final HttpResponse response)
+ throws HttpException, IOException {
+ Args.notNull(response, "HTTP response");
+ assertOpen();
+ this.responseWriter.write(response);
+ if (response.getStatusLine().getStatusCode() >= 200) {
+ incrementResponseCount();
+ }
+ }
+
+ public void sendResponseEntity(final HttpResponse response)
+ throws HttpException, IOException {
+ Args.notNull(response, "HTTP response");
+ assertOpen();
+ HttpEntity entity = response.getEntity();
+ if (entity == null) {
+ return;
+ }
+ OutputStream outstream = prepareOutput(response);
+ entity.writeTo(outstream);
+ outstream.close();
+ }
+
+ public void flush() throws IOException {
+ assertOpen();
+ doFlush();
+ }
+
+}
Propchange: httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/impl/DefaultBHttpServerConnection.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/impl/DefaultBHttpServerConnection.java
------------------------------------------------------------------------------
svn:keywords = Date Revision
Propchange: httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/impl/DefaultBHttpServerConnection.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified: httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/impl/DefaultHttpClientConnection.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/impl/DefaultHttpClientConnection.java?rev=1389028&r1=1389027&r2=1389028&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/impl/DefaultHttpClientConnection.java (original)
+++ httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/impl/DefaultHttpClientConnection.java Sun Sep 23 12:15:04 2012
@@ -53,8 +53,11 @@ import org.apache.http.util.Args;
* </ul>
*
* @since 4.0
+ *
+ * @deprecated (4.3) use {@link DefaultBHttpClientConnection}
*/
@NotThreadSafe
+@Deprecated
public class DefaultHttpClientConnection extends SocketHttpClientConnection {
public DefaultHttpClientConnection() {
Modified: httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/impl/DefaultHttpServerConnection.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/impl/DefaultHttpServerConnection.java?rev=1389028&r1=1389027&r2=1389028&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/impl/DefaultHttpServerConnection.java (original)
+++ httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/impl/DefaultHttpServerConnection.java Sun Sep 23 12:15:04 2012
@@ -53,8 +53,11 @@ import org.apache.http.util.Args;
* </ul>
*
* @since 4.0
+ *
+ * @deprecated (4.3) use {@link DefaultBHttpServerConnection}
*/
@NotThreadSafe
+@Deprecated
public class DefaultHttpServerConnection extends SocketHttpServerConnection {
public DefaultHttpServerConnection() {
Modified: httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/impl/SocketHttpClientConnection.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/impl/SocketHttpClientConnection.java?rev=1389028&r1=1389027&r2=1389028&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/impl/SocketHttpClientConnection.java (original)
+++ httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/impl/SocketHttpClientConnection.java Sun Sep 23 12:15:04 2012
@@ -61,8 +61,11 @@ import org.apache.http.util.Args;
* </ul>
*
* @since 4.0
+ *
+ * @deprecated (4.3) use {@link DefaultBHttpClientConnection}
*/
@NotThreadSafe
+@Deprecated
public class SocketHttpClientConnection
extends AbstractHttpClientConnection implements HttpInetConnection {
Modified: httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/impl/SocketHttpServerConnection.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/impl/SocketHttpServerConnection.java?rev=1389028&r1=1389027&r2=1389028&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/impl/SocketHttpServerConnection.java (original)
+++ httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/impl/SocketHttpServerConnection.java Sun Sep 23 12:15:04 2012
@@ -60,8 +60,11 @@ import org.apache.http.util.Args;
* </ul>
*
* @since 4.0
+ *
+ * @deprecated (4.3) use {@link DefaultBHttpServerConnection}
*/
@NotThreadSafe
+@Deprecated
public class SocketHttpServerConnection extends
AbstractHttpServerConnection implements HttpInetConnection {
Modified: httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/impl/pool/BasicConnFactory.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/impl/pool/BasicConnFactory.java?rev=1389028&r1=1389027&r2=1389028&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/impl/pool/BasicConnFactory.java (original)
+++ httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/impl/pool/BasicConnFactory.java Sun Sep 23 12:15:04 2012
@@ -35,7 +35,7 @@ import javax.net.ssl.SSLSocketFactory;
import org.apache.http.HttpClientConnection;
import org.apache.http.HttpHost;
import org.apache.http.annotation.Immutable;
-import org.apache.http.impl.DefaultHttpClientConnection;
+import org.apache.http.impl.DefaultBHttpClientConnection;
import org.apache.http.params.CoreConnectionPNames;
import org.apache.http.params.HttpParams;
import org.apache.http.pool.ConnFactory;
@@ -76,8 +76,8 @@ public class BasicConnFactory implements
}
protected HttpClientConnection create(final Socket socket, final HttpParams params) throws IOException {
- DefaultHttpClientConnection conn = new DefaultHttpClientConnection();
- conn.bind(socket, params);
+ DefaultBHttpClientConnection conn = new DefaultBHttpClientConnection(params);
+ conn.bind(socket);
return conn;
}
Modified: httpcomponents/httpcore/trunk/httpcore/src/test/java/org/apache/http/integration/TestSyncHttp.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore/src/test/java/org/apache/http/integration/TestSyncHttp.java?rev=1389028&r1=1389027&r2=1389028&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore/src/test/java/org/apache/http/integration/TestSyncHttp.java (original)
+++ httpcomponents/httpcore/trunk/httpcore/src/test/java/org/apache/http/integration/TestSyncHttp.java Sun Sep 23 12:15:04 2012
@@ -54,7 +54,7 @@ import org.apache.http.entity.AbstractHt
import org.apache.http.entity.ByteArrayEntity;
import org.apache.http.entity.ContentType;
import org.apache.http.entity.StringEntity;
-import org.apache.http.impl.DefaultHttpClientConnection;
+import org.apache.http.impl.DefaultBHttpClientConnection;
import org.apache.http.message.BasicHttpEntityEnclosingRequest;
import org.apache.http.message.BasicHttpRequest;
import org.apache.http.params.CoreProtocolPNames;
@@ -139,14 +139,14 @@ public class TestSyncHttp {
this.server.start();
- DefaultHttpClientConnection conn = new DefaultHttpClientConnection();
+ DefaultBHttpClientConnection conn = new DefaultBHttpClientConnection(this.client.getParams());
HttpHost host = new HttpHost("localhost", this.server.getPort());
try {
for (int r = 0; r < reqNo; r++) {
if (!conn.isOpen()) {
Socket socket = new Socket(host.getHostName(), host.getPort());
- conn.bind(socket, this.client.getParams());
+ conn.bind(socket);
}
BasicHttpRequest get = new BasicHttpRequest("GET", "/?" + r);
@@ -219,14 +219,14 @@ public class TestSyncHttp {
this.server.start();
- DefaultHttpClientConnection conn = new DefaultHttpClientConnection();
+ DefaultBHttpClientConnection conn = new DefaultBHttpClientConnection(this.client.getParams());
HttpHost host = new HttpHost("localhost", this.server.getPort());
try {
for (int r = 0; r < reqNo; r++) {
if (!conn.isOpen()) {
Socket socket = new Socket(host.getHostName(), host.getPort());
- conn.bind(socket, this.client.getParams());
+ conn.bind(socket);
}
BasicHttpEntityEnclosingRequest post = new BasicHttpEntityEnclosingRequest("POST", "/");
@@ -302,14 +302,14 @@ public class TestSyncHttp {
this.server.start();
- DefaultHttpClientConnection conn = new DefaultHttpClientConnection();
+ DefaultBHttpClientConnection conn = new DefaultBHttpClientConnection(this.client.getParams());
HttpHost host = new HttpHost("localhost", this.server.getPort());
try {
for (int r = 0; r < reqNo; r++) {
if (!conn.isOpen()) {
Socket socket = new Socket(host.getHostName(), host.getPort());
- conn.bind(socket, this.client.getParams());
+ conn.bind(socket);
}
BasicHttpEntityEnclosingRequest post = new BasicHttpEntityEnclosingRequest("POST", "/");
@@ -388,14 +388,14 @@ public class TestSyncHttp {
this.client.getParams().setParameter(
CoreProtocolPNames.PROTOCOL_VERSION, HttpVersion.HTTP_1_0);
- DefaultHttpClientConnection conn = new DefaultHttpClientConnection();
+ DefaultBHttpClientConnection conn = new DefaultBHttpClientConnection(this.client.getParams());
HttpHost host = new HttpHost("localhost", this.server.getPort());
try {
for (int r = 0; r < reqNo; r++) {
if (!conn.isOpen()) {
Socket socket = new Socket(host.getHostName(), host.getPort());
- conn.bind(socket, this.client.getParams());
+ conn.bind(socket);
}
BasicHttpEntityEnclosingRequest post = new BasicHttpEntityEnclosingRequest("POST", "/");
@@ -475,14 +475,14 @@ public class TestSyncHttp {
// Activate 'expect: continue' handshake
this.client.getParams().setBooleanParameter(CoreProtocolPNames.USE_EXPECT_CONTINUE, true);
- DefaultHttpClientConnection conn = new DefaultHttpClientConnection();
+ DefaultBHttpClientConnection conn = new DefaultBHttpClientConnection(this.client.getParams());
HttpHost host = new HttpHost("localhost", this.server.getPort());
try {
for (int r = 0; r < reqNo; r++) {
if (!conn.isOpen()) {
Socket socket = new Socket(host.getHostName(), host.getPort());
- conn.bind(socket, this.client.getParams());
+ conn.bind(socket);
}
BasicHttpEntityEnclosingRequest post = new BasicHttpEntityEnclosingRequest("POST", "/");
@@ -569,14 +569,14 @@ public class TestSyncHttp {
// Activate 'expect: continue' handshake
this.client.getParams().setBooleanParameter(CoreProtocolPNames.USE_EXPECT_CONTINUE, true);
- DefaultHttpClientConnection conn = new DefaultHttpClientConnection();
+ DefaultBHttpClientConnection conn = new DefaultBHttpClientConnection(this.client.getParams());
HttpHost host = new HttpHost("localhost", this.server.getPort());
try {
for (int r = 0; r < reqNo; r++) {
if (!conn.isOpen()) {
Socket socket = new Socket(host.getHostName(), host.getPort());
- conn.bind(socket, this.client.getParams());
+ conn.bind(socket);
}
BasicHttpEntityEnclosingRequest post = new BasicHttpEntityEnclosingRequest("POST", "/");
@@ -727,7 +727,7 @@ public class TestSyncHttp {
});
this.server.start();
- DefaultHttpClientConnection conn = new DefaultHttpClientConnection();
+ DefaultBHttpClientConnection conn = new DefaultBHttpClientConnection(this.client.getParams());
HttpHost host = new HttpHost("localhost", this.server.getPort());
try {
@@ -736,7 +736,7 @@ public class TestSyncHttp {
for (int n = 1000; n < 1020; n++) {
if (!conn.isOpen()) {
Socket socket = new Socket(host.getHostName(), host.getPort());
- conn.bind(socket, this.client.getParams());
+ conn.bind(socket);
}
BasicHttpEntityEnclosingRequest post = new BasicHttpEntityEnclosingRequest(
@@ -799,13 +799,13 @@ public class TestSyncHttp {
this.server.start();
- DefaultHttpClientConnection conn = new DefaultHttpClientConnection();
+ DefaultBHttpClientConnection conn = new DefaultBHttpClientConnection(this.client.getParams());
HttpHost host = new HttpHost("localhost", this.server.getPort());
try {
if (!conn.isOpen()) {
Socket socket = new Socket(host.getHostName(), host.getPort());
- conn.bind(socket, this.client.getParams());
+ conn.bind(socket);
}
BasicHttpEntityEnclosingRequest post = new BasicHttpEntityEnclosingRequest("POST", "/");
@@ -845,13 +845,13 @@ public class TestSyncHttp {
this.server.start();
- DefaultHttpClientConnection conn = new DefaultHttpClientConnection();
+ DefaultBHttpClientConnection conn = new DefaultBHttpClientConnection(this.client.getParams());
HttpHost host = new HttpHost("localhost", this.server.getPort());
try {
if (!conn.isOpen()) {
Socket socket = new Socket(host.getHostName(), host.getPort());
- conn.bind(socket, this.client.getParams());
+ conn.bind(socket);
}
BasicHttpEntityEnclosingRequest post = new BasicHttpEntityEnclosingRequest("POST", "/");
@@ -898,13 +898,13 @@ public class TestSyncHttp {
this.server.start();
- DefaultHttpClientConnection conn = new DefaultHttpClientConnection();
+ DefaultBHttpClientConnection conn = new DefaultBHttpClientConnection(this.client.getParams());
HttpHost host = new HttpHost("localhost", this.server.getPort());
try {
if (!conn.isOpen()) {
Socket socket = new Socket(host.getHostName(), host.getPort());
- conn.bind(socket, this.client.getParams());
+ conn.bind(socket);
}
BasicHttpEntityEnclosingRequest post = new BasicHttpEntityEnclosingRequest("POST", "/");
@@ -953,14 +953,14 @@ public class TestSyncHttp {
this.server.start();
- DefaultHttpClientConnection conn = new DefaultHttpClientConnection();
+ DefaultBHttpClientConnection conn = new DefaultBHttpClientConnection(this.client.getParams());
HttpHost host = new HttpHost("localhost", this.server.getPort());
try {
for (int r = 0; r < reqNo; r++) {
if (!conn.isOpen()) {
Socket socket = new Socket(host.getHostName(), host.getPort());
- conn.bind(socket, this.client.getParams());
+ conn.bind(socket);
}
BasicHttpRequest get = new BasicHttpRequest("GET", "/?" + r);
Modified: httpcomponents/httpcore/trunk/httpcore/src/test/java/org/apache/http/testserver/HttpServer.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore/src/test/java/org/apache/http/testserver/HttpServer.java?rev=1389028&r1=1389027&r2=1389028&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore/src/test/java/org/apache/http/testserver/HttpServer.java (original)
+++ httpcomponents/httpcore/trunk/httpcore/src/test/java/org/apache/http/testserver/HttpServer.java Sun Sep 23 12:15:04 2012
@@ -39,9 +39,9 @@ import org.apache.http.HttpException;
import org.apache.http.HttpResponseFactory;
import org.apache.http.HttpResponseInterceptor;
import org.apache.http.HttpServerConnection;
+import org.apache.http.impl.DefaultBHttpServerConnection;
import org.apache.http.impl.DefaultConnectionReuseStrategy;
import org.apache.http.impl.DefaultHttpResponseFactory;
-import org.apache.http.impl.DefaultHttpServerConnection;
import org.apache.http.params.BasicHttpParams;
import org.apache.http.params.CoreConnectionPNames;
import org.apache.http.params.CoreProtocolPNames;
@@ -107,8 +107,8 @@ public class HttpServer {
private HttpServerConnection acceptConnection() throws IOException {
Socket socket = this.serversocket.accept();
- DefaultHttpServerConnection conn = new DefaultHttpServerConnection();
- conn.bind(socket, this.params);
+ DefaultBHttpServerConnection conn = new DefaultBHttpServerConnection(this.params);
+ conn.bind(socket);
return conn;
}