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/10/04 20:10:44 UTC
svn commit: r1394187 - in /httpcomponents/httpcore/trunk:
httpcore-nio/src/main/java/org/apache/http/impl/nio/
httpcore-nio/src/main/java/org/apache/http/impl/nio/ssl/
httpcore/src/main/java/org/apache/http/impl/
httpcore/src/main/java/org/apache/http/...
Author: olegk
Date: Thu Oct 4 18:10:43 2012
New Revision: 1394187
URL: http://svn.apache.org/viewvc?rev=1394187&view=rev
Log:
Configuration API changes: basic blocking connection pool implementation is no longer dependent on HttpParams
Modified:
httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/impl/nio/DefaultClientIOEventDispatch.java
httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/impl/nio/DefaultServerIOEventDispatch.java
httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/impl/nio/SSLClientIOEventDispatch.java
httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/impl/nio/SSLServerIOEventDispatch.java
httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/impl/nio/ssl/SSLClientIOEventDispatch.java
httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/impl/nio/ssl/SSLServerIOEventDispatch.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/main/java/org/apache/http/impl/pool/BasicConnPool.java
httpcomponents/httpcore/trunk/httpcore/src/test/java/org/apache/http/impl/pool/TestBasicConnPool.java
Modified: httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/impl/nio/DefaultClientIOEventDispatch.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/impl/nio/DefaultClientIOEventDispatch.java?rev=1394187&r1=1394186&r2=1394187&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/impl/nio/DefaultClientIOEventDispatch.java (original)
+++ httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/impl/nio/DefaultClientIOEventDispatch.java Thu Oct 4 18:10:43 2012
@@ -47,16 +47,6 @@ import org.apache.http.util.Args;
/**
* Default implementation of {@link IOEventDispatch} interface for plain
* (unencrypted) client-side HTTP connections.
- * <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.CoreConnectionPNames#SO_TIMEOUT}</li>
- * <li>{@link org.apache.http.params.CoreConnectionPNames#SOCKET_BUFFER_SIZE}</li>
- * <li>{@link org.apache.http.params.CoreConnectionPNames#MAX_HEADER_COUNT}</li>
- * <li>{@link org.apache.http.params.CoreConnectionPNames#MAX_LINE_LENGTH}</li>
- * </ul>
*
* @since 4.0
*
Modified: httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/impl/nio/DefaultServerIOEventDispatch.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/impl/nio/DefaultServerIOEventDispatch.java?rev=1394187&r1=1394186&r2=1394187&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/impl/nio/DefaultServerIOEventDispatch.java (original)
+++ httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/impl/nio/DefaultServerIOEventDispatch.java Thu Oct 4 18:10:43 2012
@@ -47,16 +47,6 @@ import org.apache.http.util.Args;
/**
* Default implementation of {@link IOEventDispatch} interface for plain
* (unencrypted) server-side HTTP connections.
- * <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.CoreConnectionPNames#SO_TIMEOUT}</li>
- * <li>{@link org.apache.http.params.CoreConnectionPNames#SOCKET_BUFFER_SIZE}</li>
- * <li>{@link org.apache.http.params.CoreConnectionPNames#MAX_HEADER_COUNT}</li>
- * <li>{@link org.apache.http.params.CoreConnectionPNames#MAX_LINE_LENGTH}</li>
- * </ul>
*
* @since 4.0
*
Modified: httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/impl/nio/SSLClientIOEventDispatch.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/impl/nio/SSLClientIOEventDispatch.java?rev=1394187&r1=1394186&r2=1394187&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/impl/nio/SSLClientIOEventDispatch.java (original)
+++ httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/impl/nio/SSLClientIOEventDispatch.java Thu Oct 4 18:10:43 2012
@@ -51,15 +51,6 @@ import org.apache.http.util.Args;
/**
* Default implementation of {@link IOEventDispatch} interface for SSL
* (encrypted) client-side HTTP connections.
- * <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.CoreConnectionPNames#SOCKET_BUFFER_SIZE}</li>
- * <li>{@link org.apache.http.params.CoreConnectionPNames#MAX_HEADER_COUNT}</li>
- * <li>{@link org.apache.http.params.CoreConnectionPNames#MAX_LINE_LENGTH}</li>
- * </ul>
*
* @since 4.0
*
Modified: httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/impl/nio/SSLServerIOEventDispatch.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/impl/nio/SSLServerIOEventDispatch.java?rev=1394187&r1=1394186&r2=1394187&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/impl/nio/SSLServerIOEventDispatch.java (original)
+++ httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/impl/nio/SSLServerIOEventDispatch.java Thu Oct 4 18:10:43 2012
@@ -51,15 +51,6 @@ import org.apache.http.util.Args;
/**
* Default implementation of {@link IOEventDispatch} interface for SSL
* (encrypted) server-side HTTP connections.
- * <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.CoreConnectionPNames#SOCKET_BUFFER_SIZE}</li>
- * <li>{@link org.apache.http.params.CoreConnectionPNames#MAX_HEADER_COUNT}</li>
- * <li>{@link org.apache.http.params.CoreConnectionPNames#MAX_LINE_LENGTH}</li>
- * </ul>
*
* @since 4.0
*
Modified: httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/impl/nio/ssl/SSLClientIOEventDispatch.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/impl/nio/ssl/SSLClientIOEventDispatch.java?rev=1394187&r1=1394186&r2=1394187&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/impl/nio/ssl/SSLClientIOEventDispatch.java (original)
+++ httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/impl/nio/ssl/SSLClientIOEventDispatch.java Thu Oct 4 18:10:43 2012
@@ -46,16 +46,6 @@ import org.apache.http.util.Args;
/**
* Default implementation of {@link IOEventDispatch} interface for SSL
* (encrypted) client-side HTTP connections.
- * <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.CoreConnectionPNames#SO_TIMEOUT}</li>
- * <li>{@link org.apache.http.params.CoreConnectionPNames#SOCKET_BUFFER_SIZE}</li>
- * <li>{@link org.apache.http.params.CoreConnectionPNames#MAX_HEADER_COUNT}</li>
- * <li>{@link org.apache.http.params.CoreConnectionPNames#MAX_LINE_LENGTH}</li>
- * </ul>
*
* @since 4.1
*
Modified: httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/impl/nio/ssl/SSLServerIOEventDispatch.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/impl/nio/ssl/SSLServerIOEventDispatch.java?rev=1394187&r1=1394186&r2=1394187&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/impl/nio/ssl/SSLServerIOEventDispatch.java (original)
+++ httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/impl/nio/ssl/SSLServerIOEventDispatch.java Thu Oct 4 18:10:43 2012
@@ -46,16 +46,6 @@ import org.apache.http.util.Args;
/**
* Default implementation of {@link IOEventDispatch} interface for SSL
* (encrypted) server-side HTTP connections.
- * <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.CoreConnectionPNames#SO_TIMEOUT}</li>
- * <li>{@link org.apache.http.params.CoreConnectionPNames#SOCKET_BUFFER_SIZE}</li>
- * <li>{@link org.apache.http.params.CoreConnectionPNames#MAX_HEADER_COUNT}</li>
- * <li>{@link org.apache.http.params.CoreConnectionPNames#MAX_LINE_LENGTH}</li>
- * </ul>
*
* @since 4.1
*
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=1394187&r1=1394186&r2=1394187&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 Thu Oct 4 18:10:43 2012
@@ -37,20 +37,6 @@ import org.apache.http.util.Args;
/**
* Default implementation of a client-side HTTP connection.
- * <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.CoreConnectionPNames#TCP_NODELAY}</li>
- * <li>{@link org.apache.http.params.CoreConnectionPNames#SO_TIMEOUT}</li>
- * <li>{@link org.apache.http.params.CoreConnectionPNames#SO_LINGER}</li>
- * <li>{@link org.apache.http.params.CoreConnectionPNames#SO_KEEPALIVE}</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.0
*
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=1394187&r1=1394186&r2=1394187&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 Thu Oct 4 18:10:43 2012
@@ -37,20 +37,6 @@ import org.apache.http.util.Args;
/**
* Default implementation of a server-side HTTP connection.
- * <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.CoreConnectionPNames#TCP_NODELAY}</li>
- * <li>{@link org.apache.http.params.CoreConnectionPNames#SO_TIMEOUT}</li>
- * <li>{@link org.apache.http.params.CoreConnectionPNames#SO_LINGER}</li>
- * <li>{@link org.apache.http.params.CoreConnectionPNames#SO_KEEPALIVE}</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.0
*
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=1394187&r1=1394186&r2=1394187&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 Thu Oct 4 18:10:43 2012
@@ -48,17 +48,6 @@ import org.apache.http.util.Args;
* 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>
- * The following parameters can be used to customize the behavior of this
- * class:
- * <ul>
- * <li>{@link org.apache.http.params.CoreProtocolPNames#STRICT_TRANSFER_ENCODING}</li>
- * <li>{@link org.apache.http.params.CoreProtocolPNames#HTTP_ELEMENT_CHARSET}</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.0
*
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=1394187&r1=1394186&r2=1394187&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 Thu Oct 4 18:10:43 2012
@@ -47,17 +47,6 @@ import org.apache.http.util.Args;
/**
* Implementation of a server-side HTTP connection that can be bound to a
* network Socket in order to receive and transmit data.
- * <p>
- * The following parameters can be used to customize the behavior of this
- * class:
- * <ul>
- * <li>{@link org.apache.http.params.CoreProtocolPNames#STRICT_TRANSFER_ENCODING}</li>
- * <li>{@link org.apache.http.params.CoreProtocolPNames#HTTP_ELEMENT_CHARSET}</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.0
*
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=1394187&r1=1394186&r2=1394187&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 Thu Oct 4 18:10:43 2012
@@ -29,6 +29,7 @@ package org.apache.http.impl.pool;
import java.io.IOException;
import java.net.InetSocketAddress;
import java.net.Socket;
+import java.util.concurrent.TimeUnit;
import javax.net.ssl.SSLSocketFactory;
@@ -45,17 +46,6 @@ import org.apache.http.util.Args;
/**
* A very basic {@link ConnFactory} implementation that creates
* {@link HttpClientConnection} instances given a {@link HttpHost} instance.
- * <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.CoreConnectionPNames#TCP_NODELAY}</li>
- * <li>{@link org.apache.http.params.CoreConnectionPNames#SO_TIMEOUT}</li>
- * <li>{@link org.apache.http.params.CoreConnectionPNames#SO_LINGER}</li>
- * <li>{@link org.apache.http.params.CoreConnectionPNames#SOCKET_BUFFER_SIZE}</li>
- * <li>{@link org.apache.http.params.CoreConnectionPNames#MAX_LINE_LENGTH}</li>
- * </ul>
*
* @see HttpHost
* @since 4.2
@@ -64,18 +54,55 @@ import org.apache.http.util.Args;
public class BasicConnFactory implements ConnFactory<HttpHost, HttpClientConnection> {
private final SSLSocketFactory sslfactory;
+ private final int connectTimeout;
+ private final TimeUnit tunit;
private final HttpParams params;
+ /**
+ * @deprecated (4.3) use
+ * {@link BasicConnFactory#BasicConnFactory(SSLSocketFactory, int, TimeUnit)}.
+ */
+ @Deprecated
public BasicConnFactory(final SSLSocketFactory sslfactory, final HttpParams params) {
super();
this.sslfactory = sslfactory;
this.params = Args.notNull(params, "HTTP params");
+ this.connectTimeout = Config.getInt(params, CoreConnectionPNames.CONNECTION_TIMEOUT, 0);
+ this.tunit = TimeUnit.MILLISECONDS;
}
+ /**
+ * @deprecated (4.3) use {@link BasicConnFactory#BasicConnFactory(int, TimeUnit)}.
+ */
+ @Deprecated
public BasicConnFactory(final HttpParams params) {
this(null, params);
}
+ /**
+ * @since 4.3
+ */
+ public BasicConnFactory(
+ final SSLSocketFactory sslfactory,
+ int connectTimeout, final TimeUnit tunit) {
+ super();
+ this.sslfactory = sslfactory;
+ this.connectTimeout = connectTimeout;
+ this.tunit = tunit != null ? tunit : TimeUnit.MILLISECONDS;
+ this.params = null;
+ }
+
+ /**
+ * @since 4.3
+ */
+ public BasicConnFactory(int connectTimeout, final TimeUnit tunit) {
+ this(null, connectTimeout, tunit);
+ }
+
+ /**
+ * @deprecated (4.3) no longer used.
+ */
+ @Deprecated
protected HttpClientConnection create(final Socket socket, final HttpParams params) throws IOException {
int bufsize = Config.getInt(params, CoreConnectionPNames.SOCKET_BUFFER_SIZE, 8 * 1024);
DefaultBHttpClientConnection conn = new DefaultBHttpClientConnection(bufsize);
@@ -96,12 +123,16 @@ public class BasicConnFactory implements
if (socket == null) {
throw new IOException(scheme + " scheme is not supported");
}
- int connectTimeout = Config.getInt(params, CoreConnectionPNames.CONNECTION_TIMEOUT, 0);
- int soTimeout = Config.getInt(params, CoreConnectionPNames.SO_TIMEOUT, 0);
-
- socket.setSoTimeout(soTimeout);
- socket.connect(new InetSocketAddress(host.getHostName(), host.getPort()), connectTimeout);
- return create(socket, this.params);
+ int timeout = (int) tunit.toMillis(Math.min(connectTimeout, Integer.MAX_VALUE));
+ socket.setSoTimeout(timeout);
+ socket.connect(new InetSocketAddress(host.getHostName(), host.getPort()), timeout);
+ if (params != null) {
+ return create(socket, this.params);
+ } else {
+ DefaultBHttpClientConnection conn = new DefaultBHttpClientConnection(8 * 1024);
+ conn.bind(socket);
+ return conn;
+ }
}
}
Modified: httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/impl/pool/BasicConnPool.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/impl/pool/BasicConnPool.java?rev=1394187&r1=1394186&r2=1394187&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/impl/pool/BasicConnPool.java (original)
+++ httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/impl/pool/BasicConnPool.java Thu Oct 4 18:10:43 2012
@@ -26,6 +26,7 @@
*/
package org.apache.http.impl.pool;
+import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicLong;
import org.apache.http.HttpClientConnection;
@@ -42,17 +43,6 @@ import org.apache.http.pool.ConnPool;
* an {@link HttpHost} instance. Please note this pool implementation
* does not support complex routes via a proxy cannot differentiate between
* direct and proxied connections.
- * <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.CoreConnectionPNames#TCP_NODELAY}</li>
- * <li>{@link org.apache.http.params.CoreConnectionPNames#SO_TIMEOUT}</li>
- * <li>{@link org.apache.http.params.CoreConnectionPNames#SO_LINGER}</li>
- * <li>{@link org.apache.http.params.CoreConnectionPNames#SOCKET_BUFFER_SIZE}</li>
- * <li>{@link org.apache.http.params.CoreConnectionPNames#MAX_LINE_LENGTH}</li>
- * </ul>
*
* @see HttpHost
* @since 4.2
@@ -66,10 +56,20 @@ public class BasicConnPool extends Abstr
super(connFactory, 2, 20);
}
+ /**
+ * @deprecated (4.3) use {@link BasicConnPool#BasicConnPool(int, TimeUnit)}
+ */
public BasicConnPool(final HttpParams params) {
super(new BasicConnFactory(params), 2, 20);
}
+ /**
+ * @since 4.3
+ */
+ public BasicConnPool(int connectTimeout, final TimeUnit tunit) {
+ super(new BasicConnFactory(connectTimeout, tunit), 2, 20);
+ }
+
@Override
protected BasicPoolEntry createEntry(
final HttpHost host,
Modified: httpcomponents/httpcore/trunk/httpcore/src/test/java/org/apache/http/impl/pool/TestBasicConnPool.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore/src/test/java/org/apache/http/impl/pool/TestBasicConnPool.java?rev=1394187&r1=1394186&r2=1394187&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore/src/test/java/org/apache/http/impl/pool/TestBasicConnPool.java (original)
+++ httpcomponents/httpcore/trunk/httpcore/src/test/java/org/apache/http/impl/pool/TestBasicConnPool.java Thu Oct 4 18:10:43 2012
@@ -29,6 +29,7 @@ package org.apache.http.impl.pool;
import static org.junit.Assert.assertEquals;
import java.net.ServerSocket;
+import java.util.concurrent.TimeUnit;
import javax.net.ssl.SSLServerSocket;
import javax.net.ssl.SSLServerSocketFactory;
@@ -36,9 +37,6 @@ import javax.net.ssl.SSLSocketFactory;
import org.apache.http.HttpClientConnection;
import org.apache.http.HttpHost;
-import org.apache.http.params.BasicHttpParams;
-import org.apache.http.params.CoreConnectionPNames;
-import org.apache.http.params.HttpParams;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
@@ -48,7 +46,6 @@ public class TestBasicConnPool {
private BasicConnFactory connFactory;
private BasicConnPool pool;
private HttpHost host;
- private HttpParams params;
private HttpClientConnection conn;
private ServerSocket server;
@@ -67,10 +64,7 @@ public class TestBasicConnPool {
sslServer = (SSLServerSocket) SSLServerSocketFactory.getDefault().createServerSocket(0);
sslServerPort = sslServer.getLocalPort();
- params = new BasicHttpParams();
- params.setParameter(CoreConnectionPNames.SO_TIMEOUT, 100);
- params.setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 100);
- connFactory = new BasicConnFactory(params);
+ connFactory = new BasicConnFactory(100, TimeUnit.MILLISECONDS);
pool = new BasicConnPool(connFactory);
}
@@ -84,11 +78,6 @@ public class TestBasicConnPool {
}
@Test(expected=IllegalArgumentException.class)
- public void testNullConstructor1() throws Exception {
- new BasicConnPool((HttpParams) null);
- }
-
- @Test(expected=IllegalArgumentException.class)
public void testNullConstructor2() throws Exception {
new BasicConnPool((BasicConnFactory) null);
}
@@ -104,7 +93,8 @@ public class TestBasicConnPool {
@Test
public void testHttpsCreateConnection() throws Exception {
- connFactory = new BasicConnFactory((SSLSocketFactory)SSLSocketFactory.getDefault(), params);
+ connFactory = new BasicConnFactory((SSLSocketFactory)SSLSocketFactory.getDefault(),
+ 100, TimeUnit.MILLISECONDS);
host = new HttpHost("localhost", sslServerPort, "https");
conn = connFactory.create(host);