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 2009/10/02 13:33:01 UTC
svn commit: r820971 [1/2] - in /httpcomponents/httpclient/trunk: ./
httpclient/src/examples/org/apache/http/examples/client/
httpclient/src/examples/org/apache/http/examples/conn/
httpclient/src/main/java/org/apache/http/conn/params/ httpclient/src/mai...
Author: olegk
Date: Fri Oct 2 11:33:00 2009
New Revision: 820971
URL: http://svn.apache.org/viewvc?rev=820971&view=rev
Log:
Simplified configuration of connection managers. Total connection maximum and maximum connection per route limits can be set using methods of the class instead of HTTP parameters
Modified:
httpcomponents/httpclient/trunk/RELEASE_NOTES.txt
httpcomponents/httpclient/trunk/httpclient/src/examples/org/apache/http/examples/client/ClientEvictExpiredConnections.java
httpcomponents/httpclient/trunk/httpclient/src/examples/org/apache/http/examples/client/ClientMultiThreadedExecution.java
httpcomponents/httpclient/trunk/httpclient/src/examples/org/apache/http/examples/conn/ManagerConnectDirect.java
httpcomponents/httpclient/trunk/httpclient/src/examples/org/apache/http/examples/conn/ManagerConnectProxy.java
httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/conn/params/ConnManagerPNames.java
httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/conn/params/ConnManagerParamBean.java
httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/conn/params/ConnManagerParams.java
httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/conn/params/ConnPerRouteBean.java
httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/DefaultHttpClient.java
httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/conn/SingleClientConnManager.java
httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/conn/tsccm/AbstractConnPool.java
httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/conn/tsccm/ConnPoolByRoute.java
httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/conn/tsccm/ThreadSafeClientConnManager.java
httpcomponents/httpclient/trunk/httpclient/src/test/java/org/apache/http/conn/TestConnectionAutoRelease.java
httpcomponents/httpclient/trunk/httpclient/src/test/java/org/apache/http/conn/TestConnectionReuse.java
httpcomponents/httpclient/trunk/httpclient/src/test/java/org/apache/http/impl/client/TestContentCodings.java
httpcomponents/httpclient/trunk/httpclient/src/test/java/org/apache/http/impl/client/TestDefaultClientRequestDirector.java
httpcomponents/httpclient/trunk/httpclient/src/test/java/org/apache/http/impl/client/TestStatefulConnManagement.java
httpcomponents/httpclient/trunk/httpclient/src/test/java/org/apache/http/impl/conn/TestSCMWithServer.java
httpcomponents/httpclient/trunk/httpclient/src/test/java/org/apache/http/impl/conn/TestTSCCMNoServer.java
httpcomponents/httpclient/trunk/httpclient/src/test/java/org/apache/http/impl/conn/TestTSCCMWithServer.java
httpcomponents/httpclient/trunk/httpclient/src/test/java/org/apache/http/impl/conn/tsccm/TestConnPoolByRoute.java
httpcomponents/httpclient/trunk/httpclient/src/test/java/org/apache/http/impl/conn/tsccm/TestSpuriousWakeup.java
httpcomponents/httpclient/trunk/src/docbkx/connmgmt.xml
Modified: httpcomponents/httpclient/trunk/RELEASE_NOTES.txt
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/RELEASE_NOTES.txt?rev=820971&r1=820970&r2=820971&view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/RELEASE_NOTES.txt (original)
+++ httpcomponents/httpclient/trunk/RELEASE_NOTES.txt Fri Oct 2 11:33:00 2009
@@ -1,6 +1,11 @@
Changes since 4.0
-------------------
+* Simplified configuration of connection managers. Total connection maximum
+ and maximum connection per route limits can be set using methods of
+ the class instead of HTTP parameters.
+ Contributed by Oleg Kalnichevski <olegk at apache.org>
+
* Added parameters to define the order of preference for supported auth
schemes for target host and proxy authentication.
Contributed by Oleg Kalnichevski <olegk at apache.org>
Modified: httpcomponents/httpclient/trunk/httpclient/src/examples/org/apache/http/examples/client/ClientEvictExpiredConnections.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient/src/examples/org/apache/http/examples/client/ClientEvictExpiredConnections.java?rev=820971&r1=820970&r2=820971&view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/httpclient/src/examples/org/apache/http/examples/client/ClientEvictExpiredConnections.java (original)
+++ httpcomponents/httpclient/trunk/httpclient/src/examples/org/apache/http/examples/client/ClientEvictExpiredConnections.java Fri Oct 2 11:33:00 2009
@@ -30,19 +30,14 @@
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
-import org.apache.http.HttpVersion;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.conn.ClientConnectionManager;
-import org.apache.http.conn.params.ConnManagerParams;
import org.apache.http.conn.scheme.PlainSocketFactory;
import org.apache.http.conn.scheme.Scheme;
import org.apache.http.conn.scheme.SchemeRegistry;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager;
-import org.apache.http.params.BasicHttpParams;
-import org.apache.http.params.HttpParams;
-import org.apache.http.params.HttpProtocolParams;
/**
* Example demonstrating how to evict expired and idle connections
@@ -51,18 +46,15 @@
public class ClientEvictExpiredConnections {
public static void main(String[] args) throws Exception {
- // Create and initialize HTTP parameters
- HttpParams params = new BasicHttpParams();
- ConnManagerParams.setMaxTotalConnections(params, 100);
- HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);
-
// Create and initialize scheme registry
SchemeRegistry schemeRegistry = new SchemeRegistry();
schemeRegistry.register(
new Scheme("http", PlainSocketFactory.getSocketFactory(), 80));
- ClientConnectionManager cm = new ThreadSafeClientConnManager(params, schemeRegistry);
- HttpClient httpclient = new DefaultHttpClient(cm, params);
+ ThreadSafeClientConnManager cm = new ThreadSafeClientConnManager(schemeRegistry);
+ cm.setMaxTotalConnections(100);
+
+ HttpClient httpclient = new DefaultHttpClient(cm);
// create an array of URIs to perform GETs on
String[] urisToGet = {
Modified: httpcomponents/httpclient/trunk/httpclient/src/examples/org/apache/http/examples/client/ClientMultiThreadedExecution.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient/src/examples/org/apache/http/examples/client/ClientMultiThreadedExecution.java?rev=820971&r1=820970&r2=820971&view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/httpclient/src/examples/org/apache/http/examples/client/ClientMultiThreadedExecution.java (original)
+++ httpcomponents/httpclient/trunk/httpclient/src/examples/org/apache/http/examples/client/ClientMultiThreadedExecution.java Fri Oct 2 11:33:00 2009
@@ -28,21 +28,15 @@
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
-import org.apache.http.HttpVersion;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
-import org.apache.http.conn.ClientConnectionManager;
-import org.apache.http.conn.params.ConnManagerParams;
import org.apache.http.conn.scheme.PlainSocketFactory;
import org.apache.http.conn.scheme.Scheme;
import org.apache.http.conn.scheme.SchemeRegistry;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager;
-import org.apache.http.params.BasicHttpParams;
-import org.apache.http.params.HttpParams;
-import org.apache.http.params.HttpProtocolParams;
-import org.apache.http.protocol.HttpContext;
import org.apache.http.protocol.BasicHttpContext;
+import org.apache.http.protocol.HttpContext;
import org.apache.http.util.EntityUtils;
/**
@@ -52,11 +46,6 @@
public class ClientMultiThreadedExecution {
public static void main(String[] args) throws Exception {
- // Create and initialize HTTP parameters
- HttpParams params = new BasicHttpParams();
- ConnManagerParams.setMaxTotalConnections(params, 100);
- HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);
-
// Create and initialize scheme registry
SchemeRegistry schemeRegistry = new SchemeRegistry();
schemeRegistry.register(
@@ -65,8 +54,10 @@
// Create an HttpClient with the ThreadSafeClientConnManager.
// This connection manager must be used if more than one thread will
// be using the HttpClient.
- ClientConnectionManager cm = new ThreadSafeClientConnManager(params, schemeRegistry);
- HttpClient httpClient = new DefaultHttpClient(cm, params);
+ ThreadSafeClientConnManager cm = new ThreadSafeClientConnManager(schemeRegistry);
+ cm.setMaxTotalConnections(100);
+
+ HttpClient httpClient = new DefaultHttpClient(cm);
// create an array of URIs to perform GETs on
String[] urisToGet = {
Modified: httpcomponents/httpclient/trunk/httpclient/src/examples/org/apache/http/examples/conn/ManagerConnectDirect.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient/src/examples/org/apache/http/examples/conn/ManagerConnectDirect.java?rev=820971&r1=820970&r2=820971&view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/httpclient/src/examples/org/apache/http/examples/conn/ManagerConnectDirect.java (original)
+++ httpcomponents/httpclient/trunk/httpclient/src/examples/org/apache/http/examples/conn/ManagerConnectDirect.java Fri Oct 2 11:33:00 2009
@@ -145,7 +145,7 @@
private final static ClientConnectionManager createManager() {
- return new ThreadSafeClientConnManager(getParams(), supportedSchemes);
+ return new ThreadSafeClientConnManager(supportedSchemes);
}
Modified: httpcomponents/httpclient/trunk/httpclient/src/examples/org/apache/http/examples/conn/ManagerConnectProxy.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient/src/examples/org/apache/http/examples/conn/ManagerConnectProxy.java?rev=820971&r1=820970&r2=820971&view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/httpclient/src/examples/org/apache/http/examples/conn/ManagerConnectProxy.java (original)
+++ httpcomponents/httpclient/trunk/httpclient/src/examples/org/apache/http/examples/conn/ManagerConnectProxy.java Fri Oct 2 11:33:00 2009
@@ -173,7 +173,7 @@
private final static ClientConnectionManager createManager() {
- return new ThreadSafeClientConnManager(getParams(), supportedSchemes);
+ return new ThreadSafeClientConnManager(supportedSchemes);
}
Modified: httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/conn/params/ConnManagerPNames.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/conn/params/ConnManagerPNames.java?rev=820971&r1=820970&r2=820971&view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/conn/params/ConnManagerPNames.java (original)
+++ httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/conn/params/ConnManagerPNames.java Fri Oct 2 11:33:00 2009
@@ -51,6 +51,7 @@
* This parameter expects a value of type {@link ConnPerRoute}.
* </p>
*/
+ @Deprecated
public static final String MAX_CONNECTIONS_PER_ROUTE = "http.conn-manager.max-per-route";
/**
@@ -61,6 +62,7 @@
* This parameter expects a value of type {@link Integer}.
* </p>
*/
+ @Deprecated
public static final String MAX_TOTAL_CONNECTIONS = "http.conn-manager.max-total";
}
Modified: httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/conn/params/ConnManagerParamBean.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/conn/params/ConnManagerParamBean.java?rev=820971&r1=820970&r2=820971&view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/conn/params/ConnManagerParamBean.java (original)
+++ httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/conn/params/ConnManagerParamBean.java Fri Oct 2 11:33:00 2009
@@ -51,11 +51,13 @@
}
/** @see ConnManagerPNames#MAX_TOTAL_CONNECTIONS */
+ @Deprecated
public void setMaxTotalConnections (final int maxConnections) {
params.setIntParameter(ConnManagerPNames.MAX_TOTAL_CONNECTIONS, maxConnections);
}
/** @see ConnManagerPNames#MAX_CONNECTIONS_PER_ROUTE */
+ @Deprecated
public void setConnectionsPerRoute(final ConnPerRouteBean connPerRoute) {
params.setParameter(ConnManagerPNames.MAX_CONNECTIONS_PER_ROUTE, connPerRoute);
}
Modified: httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/conn/params/ConnManagerParams.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/conn/params/ConnManagerParams.java?rev=820971&r1=820970&r2=820971&view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/conn/params/ConnManagerParams.java (original)
+++ httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/conn/params/ConnManagerParams.java Fri Oct 2 11:33:00 2009
@@ -74,6 +74,7 @@
}
/** The default maximum number of connections allowed per host */
+ @Deprecated
private static final ConnPerRoute DEFAULT_CONN_PER_ROUTE = new ConnPerRoute() {
public int getMaxForRoute(HttpRoute route) {
@@ -89,8 +90,11 @@
* @param connPerRoute lookup interface for maximum number of connections allowed
* per route
*
+ * @deprecated do not use
+ *
* @see ConnManagerPNames#MAX_CONNECTIONS_PER_ROUTE
*/
+ @Deprecated
public static void setMaxConnectionsPerRoute(final HttpParams params,
final ConnPerRoute connPerRoute) {
if (params == null) {
@@ -107,8 +111,11 @@
*
* @return lookup interface for maximum number of connections allowed per route.
*
+ * @deprecated do not use
+ *
* @see ConnManagerPNames#MAX_CONNECTIONS_PER_ROUTE
*/
+ @Deprecated
public static ConnPerRoute getMaxConnectionsPerRoute(final HttpParams params) {
if (params == null) {
throw new IllegalArgumentException
@@ -128,8 +135,11 @@
* @param params HTTP parameters
* @param maxTotalConnections The maximum number of connections allowed.
*
+ * @deprecated do not use
+ *
* @see ConnManagerPNames#MAX_TOTAL_CONNECTIONS
*/
+ @Deprecated
public static void setMaxTotalConnections(
final HttpParams params,
int maxTotalConnections) {
@@ -147,8 +157,11 @@
*
* @return The maximum number of connections allowed.
*
+ * @deprecated do not use
+ *
* @see ConnManagerPNames#MAX_TOTAL_CONNECTIONS
*/
+ @Deprecated
public static int getMaxTotalConnections(
final HttpParams params) {
if (params == null) {
Modified: httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/conn/params/ConnPerRouteBean.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/conn/params/ConnPerRouteBean.java?rev=820971&r1=820970&r2=820971&view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/conn/params/ConnPerRouteBean.java (original)
+++ httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/conn/params/ConnPerRouteBean.java Fri Oct 2 11:33:00 2009
@@ -29,7 +29,8 @@
import java.util.HashMap;
import java.util.Map;
-import org.apache.http.annotation.NotThreadSafe;
+import org.apache.http.annotation.GuardedBy;
+import org.apache.http.annotation.ThreadSafe;
import org.apache.http.conn.routing.HttpRoute;
@@ -41,14 +42,16 @@
*
* @since 4.0
*/
-@NotThreadSafe // maxPerHostMap and defaultMax
+@ThreadSafe
public final class ConnPerRouteBean implements ConnPerRoute {
/** The default maximum number of connections allowed per host */
public static final int DEFAULT_MAX_CONNECTIONS_PER_ROUTE = 2; // Per RFC 2616 sec 8.1.4
+ @GuardedBy("this")
private final Map<HttpRoute, Integer> maxPerHostMap;
+ @GuardedBy("this")
private int defaultMax;
public ConnPerRouteBean(int defaultMax) {
@@ -61,11 +64,19 @@
this(DEFAULT_MAX_CONNECTIONS_PER_ROUTE);
}
- public int getDefaultMax() {
+ @Deprecated
+ public synchronized int getDefaultMax() {
return this.defaultMax;
}
- public void setDefaultMaxPerRoute(int max) {
+ /**
+ * @since 4.1
+ */
+ public synchronized int getDefaultMaxPerRoute() {
+ return this.defaultMax;
+ }
+
+ public synchronized void setDefaultMaxPerRoute(int max) {
if (max < 1) {
throw new IllegalArgumentException
("The maximum must be greater than 0.");
@@ -73,7 +84,7 @@
this.defaultMax = max;
}
- public void setMaxForRoute(final HttpRoute route, int max) {
+ public synchronized void setMaxForRoute(final HttpRoute route, int max) {
if (route == null) {
throw new IllegalArgumentException
("HTTP route may not be null.");
@@ -85,7 +96,7 @@
this.maxPerHostMap.put(route, Integer.valueOf(max));
}
- public int getMaxForRoute(final HttpRoute route) {
+ public synchronized int getMaxForRoute(final HttpRoute route) {
if (route == null) {
throw new IllegalArgumentException
("HTTP route may not be null.");
@@ -98,7 +109,7 @@
}
}
- public void setMaxForRoutes(final Map<HttpRoute, Integer> map) {
+ public synchronized void setMaxForRoutes(final Map<HttpRoute, Integer> map) {
if (map == null) {
return;
}
@@ -106,9 +117,9 @@
this.maxPerHostMap.putAll(map);
}
- @Override
- public String toString() {
- return this.maxPerHostMap.toString();
- }
+ @Override
+ public synchronized String toString() {
+ return this.maxPerHostMap.toString();
+ }
}
Modified: httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/DefaultHttpClient.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/DefaultHttpClient.java?rev=820971&r1=820970&r2=820971&view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/DefaultHttpClient.java (original)
+++ httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/DefaultHttpClient.java Fri Oct 2 11:33:00 2009
@@ -134,8 +134,6 @@
* <li>{@link org.apache.http.conn.params.ConnRoutePNames#LOCAL_ADDRESS}</li>
* <li>{@link org.apache.http.conn.params.ConnRoutePNames#DEFAULT_PROXY}</li>
* <li>{@link org.apache.http.conn.params.ConnManagerPNames#TIMEOUT}</li>
- * <li>{@link org.apache.http.conn.params.ConnManagerPNames#MAX_CONNECTIONS_PER_ROUTE}</li>
- * <li>{@link org.apache.http.conn.params.ConnManagerPNames#MAX_TOTAL_CONNECTIONS}</li>
* <li>{@link org.apache.http.cookie.params.CookieSpecPNames#DATE_PATTERNS}</li>
* <li>{@link org.apache.http.cookie.params.CookieSpecPNames#SINGLE_COOKIE_HEADER}</li>
* <li>{@link org.apache.http.auth.params.AuthPNames#CREDENTIAL_CHARSET}</li>
@@ -155,7 +153,6 @@
@ThreadSafe
public class DefaultHttpClient extends AbstractHttpClient {
-
/**
* Creates a new HTTP client from parameters and a connection manager.
*
@@ -168,6 +165,15 @@
super(conman, params);
}
+
+ /**
+ * @since 4.1
+ */
+ public DefaultHttpClient(
+ final ClientConnectionManager conman) {
+ super(conman, null);
+ }
+
public DefaultHttpClient(final HttpParams params) {
super(null, params);
@@ -241,7 +247,7 @@
if (factory != null) {
connManager = factory.newInstance(params, registry);
} else {
- connManager = new SingleClientConnManager(getParams(), registry);
+ connManager = new SingleClientConnManager(registry);
}
return connManager;
Modified: httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/conn/SingleClientConnManager.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/conn/SingleClientConnManager.java?rev=820971&r1=820970&r2=820971&view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/conn/SingleClientConnManager.java (original)
+++ httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/conn/SingleClientConnManager.java Fri Oct 2 11:33:00 2009
@@ -102,9 +102,21 @@
* @param params the parameters for this manager
* @param schreg the scheme registry, or
* <code>null</code> for the default registry
+ *
+ * @deprecated use {@link SingleClientConnManager#SingleClientConnManager(SchemeRegistry)}
*/
+ @Deprecated
public SingleClientConnManager(HttpParams params,
SchemeRegistry schreg) {
+ this(schreg);
+ }
+ /**
+ * Creates a new simple connection manager.
+ *
+ * @param schreg the scheme registry, or
+ * <code>null</code> for the default registry
+ */
+ public SingleClientConnManager(final SchemeRegistry schreg) {
if (schreg == null) {
throw new IllegalArgumentException
("Scheme registry must not be null.");
@@ -236,8 +248,8 @@
}
public synchronized void releaseConnection(
- ManagedClientConnection conn,
- long validDuration, TimeUnit timeUnit) {
+ ManagedClientConnection conn,
+ long validDuration, TimeUnit timeUnit) {
assertStillUp();
if (!(conn instanceof ConnAdapter)) {
Modified: httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/conn/tsccm/AbstractConnPool.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/conn/tsccm/AbstractConnPool.java?rev=820971&r1=820970&r2=820971&view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/conn/tsccm/AbstractConnPool.java (original)
+++ httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/conn/tsccm/AbstractConnPool.java Fri Oct 2 11:33:00 2009
@@ -60,7 +60,7 @@
@SuppressWarnings("deprecation")
public abstract class AbstractConnPool implements RefQueueHandler {
- private final Log log = LogFactory.getLog(getClass());
+ private final Log log;
/**
* The global lock for this pool.
@@ -95,11 +95,11 @@
* Creates a new connection pool.
*/
protected AbstractConnPool() {
- leasedConnections = new HashSet<BasicPoolEntry>();
- idleConnHandler = new IdleConnectionHandler();
-
- boolean fair = false; //@@@ check parameters to decide
- poolLock = new ReentrantLock(fair);
+ super();
+ this.log = LogFactory.getLog(getClass());
+ this.leasedConnections = new HashSet<BasicPoolEntry>();
+ this.idleConnHandler = new IdleConnectionHandler();
+ this.poolLock = new ReentrantLock();
}
/**
Modified: httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/conn/tsccm/ConnPoolByRoute.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/conn/tsccm/ConnPoolByRoute.java?rev=820971&r1=820970&r2=820971&view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/conn/tsccm/ConnPoolByRoute.java (original)
+++ httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/conn/tsccm/ConnPoolByRoute.java Fri Oct 2 11:33:00 2009
@@ -37,6 +37,8 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.apache.http.annotation.GuardedBy;
+import org.apache.http.annotation.ThreadSafe;
import org.apache.http.conn.routing.HttpRoute;
import org.apache.http.conn.ClientConnectionOperator;
import org.apache.http.conn.ConnectionPoolTimeoutException;
@@ -60,14 +62,16 @@
*
* @since 4.0
*/
+@ThreadSafe
public class ConnPoolByRoute extends AbstractConnPool {
private final Log log = LogFactory.getLog(getClass());
- private final HttpParams params;
-
/** Connection operator for this pool */
protected final ClientConnectionOperator operator;
+
+ /** Connections per route lookup */
+ protected final ConnPerRoute connPerRoute;
/** The list of free connections */
protected final Queue<BasicPoolEntry> freeConnections;
@@ -80,24 +84,47 @@
* Keys are of class {@link HttpRoute},
* values of class {@link RouteSpecificPool}.
*/
+ @GuardedBy("poolLock")
protected final Map<HttpRoute, RouteSpecificPool> routeToPool;
+ @GuardedBy("poolLock")
+ protected volatile int maxTotalConnections;
+
/**
* Creates a new connection pool, managed by route.
+ *
+ * @since 4.1
*/
- public ConnPoolByRoute(final ClientConnectionOperator operator, final HttpParams params) {
+ public ConnPoolByRoute(
+ final ClientConnectionOperator operator,
+ final ConnPerRoute connPerRoute,
+ int maxTotalConnections) {
super();
if (operator == null) {
throw new IllegalArgumentException("Connection operator may not be null");
}
+ if (connPerRoute == null) {
+ throw new IllegalArgumentException("Connections per route may not be null");
+ }
this.operator = operator;
- this.params = params;
-
- freeConnections = createFreeConnQueue();
- waitingThreads = createWaitingThreadQueue();
- routeToPool = createRouteToPoolMap();
+ this.connPerRoute = connPerRoute;
+ this.maxTotalConnections = maxTotalConnections;
+ this.freeConnections = createFreeConnQueue();
+ this.waitingThreads = createWaitingThreadQueue();
+ this.routeToPool = createRouteToPoolMap();
}
+ /**
+ * Creates a new connection pool, managed by route.
+ *
+ * @deprecated use {@link ConnPoolByRoute#ConnPoolByRoute(ClientConnectionOperator, ConnPerRoute)}
+ */
+ @Deprecated
+ public ConnPoolByRoute(final ClientConnectionOperator operator, final HttpParams params) {
+ this(operator,
+ ConnManagerParams.getMaxConnectionsPerRoute(params),
+ ConnManagerParams.getMaxTotalConnections(params));
+ }
/**
* Creates the queue for {@link #freeConnections}.
@@ -139,8 +166,7 @@
* @return the new pool
*/
protected RouteSpecificPool newRouteSpecificPool(HttpRoute route) {
- ConnPerRoute connPerRoute = ConnManagerParams.getMaxConnectionsPerRoute(params);
- return new RouteSpecificPool(route, connPerRoute.getMaxForRoute(route));
+ return new RouteSpecificPool(route, this.connPerRoute.getMaxForRoute(route));
}
@@ -255,8 +281,6 @@
WaitingThreadAborter aborter)
throws ConnectionPoolTimeoutException, InterruptedException {
- int maxTotalConnections = ConnManagerParams.getMaxTotalConnections(params);
-
Date deadline = null;
if (timeout > 0) {
deadline = new Date
@@ -685,6 +709,26 @@
}
}
+ /**
+ * since 4.1
+ */
+ public void setMaxTotalConnections(int max) {
+ poolLock.lock();
+ try {
+ maxTotalConnections = max;
+ } finally {
+ poolLock.unlock();
+ }
+ }
+
+
+ /**
+ * since 4.1
+ */
+ public int getMaxTotalConnections() {
+ return maxTotalConnections;
+ }
+
} // class ConnPoolByRoute
Modified: httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/conn/tsccm/ThreadSafeClientConnManager.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/conn/tsccm/ThreadSafeClientConnManager.java?rev=820971&r1=820970&r2=820971&view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/conn/tsccm/ThreadSafeClientConnManager.java (original)
+++ httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/conn/tsccm/ThreadSafeClientConnManager.java Fri Oct 2 11:33:00 2009
@@ -31,6 +31,8 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.apache.http.annotation.ThreadSafe;
+import org.apache.http.conn.params.ConnPerRouteBean;
import org.apache.http.conn.routing.HttpRoute;
import org.apache.http.conn.scheme.SchemeRegistry;
import org.apache.http.conn.ClientConnectionManager;
@@ -57,53 +59,69 @@
* these limits may prove too constraining, especially if they use HTTP
* as a transport protocol for their services. Connection limits, however,
* can be adjusted using HTTP parameters.
- * <p>
- * The following parameters can be used to customize the behavior of this
- * class:
- * <ul>
- * <li>{@link org.apache.http.conn.params.ConnManagerPNames#MAX_TOTAL_CONNECTIONS}</li>
- * <li>{@link org.apache.http.conn.params.ConnManagerPNames#MAX_CONNECTIONS_PER_ROUTE}</li>
- * </ul>
- *
- * @see org.apache.http.conn.params.ConnPerRoute
- * @see org.apache.http.conn.params.ConnPerRouteBean
*
* @since 4.0
*/
+@ThreadSafe
public class ThreadSafeClientConnManager implements ClientConnectionManager {
- private final Log log = LogFactory.getLog(getClass());
+ private final Log log;
/** The schemes supported by this connection manager. */
protected final SchemeRegistry schemeRegistry; // @ThreadSafe
- /** The pool of connections being managed. */
+ @Deprecated
protected final AbstractConnPool connectionPool;
+ /** The pool of connections being managed. */
+ protected final ConnPoolByRoute pool;
+
/** The operator for opening and updating connections. */
protected final ClientConnectionOperator connOperator; // DefaultClientConnectionOperator is @ThreadSafe
+ protected final ConnPerRouteBean connPerRoute;
+
+ /**
+ * Creates a new thread safe connection manager.
+ *
+ * @param params the parameters for this manager.
+ * @param schreg the scheme registry.
+ */
+ public ThreadSafeClientConnManager(final SchemeRegistry schreg) {
+ super();
+ if (schreg == null) {
+ throw new IllegalArgumentException("Scheme registry may not be null");
+ }
+ this.log = LogFactory.getLog(getClass());
+ this.schemeRegistry = schreg;
+ this.connPerRoute = new ConnPerRouteBean();
+ this.connOperator = createConnectionOperator(schreg);
+ this.pool = createConnectionPool() ;
+ this.connectionPool = this.pool;
+ }
+
/**
* Creates a new thread safe connection manager.
*
* @param params the parameters for this manager.
* @param schreg the scheme registry.
+ *
+ * @deprecated use {@link ThreadSafeClientConnManager#ThreadSafeClientConnManager(SchemeRegistry)}
*/
+ @Deprecated
public ThreadSafeClientConnManager(HttpParams params,
SchemeRegistry schreg) {
-
- if (params == null) {
- throw new IllegalArgumentException("HTTP parameters may not be null");
- }
if (schreg == null) {
throw new IllegalArgumentException("Scheme registry may not be null");
}
+ this.log = LogFactory.getLog(getClass());
this.schemeRegistry = schreg;
- this.connOperator = createConnectionOperator(schreg);
- this.connectionPool = createConnectionPool(params);
-
+ this.connPerRoute = new ConnPerRouteBean();
+ this.connOperator = createConnectionOperator(schreg);
+ this.pool = (ConnPoolByRoute) createConnectionPool(params) ;
+ this.connectionPool = this.pool;
}
-
+
@Override
protected void finalize() throws Throwable {
try {
@@ -117,12 +135,25 @@
* Hook for creating the connection pool.
*
* @return the connection pool to use
+ *
+ * @deprecated use {@link #createConnectionPool(ConnPerRouteBean)}
*/
protected AbstractConnPool createConnectionPool(final HttpParams params) {
return new ConnPoolByRoute(connOperator, params);
}
/**
+ * Hook for creating the connection pool.
+ *
+ * @return the connection pool to use
+ *
+ * @since 4.1
+ */
+ protected ConnPoolByRoute createConnectionPool() {
+ return new ConnPoolByRoute(connOperator, connPerRoute, 20);
+ }
+
+ /**
* Hook for creating the connection operator.
* It is called by the constructor.
* Derived classes can override this method to change the
@@ -148,7 +179,7 @@
final HttpRoute route,
final Object state) {
- final PoolEntryRequest poolRequest = connectionPool.requestPoolEntry(
+ final PoolEntryRequest poolRequest = pool.requestPoolEntry(
route, state);
return new ClientConnectionRequest() {
@@ -220,14 +251,14 @@
}
hca.detach();
if (entry != null) {
- connectionPool.freeEntry(entry, reusable, validDuration, timeUnit);
+ pool.freeEntry(entry, reusable, validDuration, timeUnit);
}
}
}
public void shutdown() {
log.debug("Shutting down");
- connectionPool.shutdown();
+ pool.shutdown();
}
/**
@@ -240,9 +271,8 @@
*
* @return the total number of pooled connections for that route
*/
- public int getConnectionsInPool(HttpRoute route) {
- return ((ConnPoolByRoute)connectionPool).getConnectionsInPool(
- route);
+ public int getConnectionsInPool(final HttpRoute route) {
+ return pool.getConnectionsInPool(route);
}
/**
@@ -254,25 +284,68 @@
* @return the total number of pooled connections
*/
public int getConnectionsInPool() {
- int count;
- connectionPool.poolLock.lock();
- count = connectionPool.numConnections; //@@@
- connectionPool.poolLock.unlock();
- return count;
+ pool.poolLock.lock();
+ try {
+ return pool.numConnections;
+ } finally {
+ pool.poolLock.unlock();
+ }
}
public void closeIdleConnections(long idleTimeout, TimeUnit tunit) {
if (log.isDebugEnabled()) {
log.debug("Closing connections idle for " + idleTimeout + " " + tunit);
}
- connectionPool.closeIdleConnections(idleTimeout, tunit);
- connectionPool.deleteClosedConnections();
+ pool.closeIdleConnections(idleTimeout, tunit);
+ pool.deleteClosedConnections();
}
public void closeExpiredConnections() {
log.debug("Closing expired connections");
- connectionPool.closeExpiredConnections();
- connectionPool.deleteClosedConnections();
+ pool.closeExpiredConnections();
+ pool.deleteClosedConnections();
+ }
+
+ /**
+ * since 4.1
+ */
+ public int getMaxTotalConnections() {
+ return pool.getMaxTotalConnections();
+ }
+
+ /**
+ * since 4.1
+ */
+ public void setMaxTotalConnections(int max) {
+ pool.setMaxTotalConnections(max);
+ }
+
+ /**
+ * @since 4.1
+ */
+ public int getDefaultMaxPerRoute() {
+ return connPerRoute.getDefaultMaxPerRoute();
+ }
+
+ /**
+ * @since 4.1
+ */
+ public void setDefaultMaxPerRoute(int max) {
+ connPerRoute.setDefaultMaxPerRoute(max);
+ }
+
+ /**
+ * @since 4.1
+ */
+ public int getMaxForRoute(final HttpRoute route) {
+ return connPerRoute.getMaxForRoute(route);
+ }
+
+ /**
+ * @since 4.1
+ */
+ public void setMaxForRoute(final HttpRoute route, int max) {
+ connPerRoute.setMaxForRoute(route, max);
}
}
Modified: httpcomponents/httpclient/trunk/httpclient/src/test/java/org/apache/http/conn/TestConnectionAutoRelease.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient/src/test/java/org/apache/http/conn/TestConnectionAutoRelease.java?rev=820971&r1=820970&r2=820971&view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/httpclient/src/test/java/org/apache/http/conn/TestConnectionAutoRelease.java (original)
+++ httpcomponents/httpclient/trunk/httpclient/src/test/java/org/apache/http/conn/TestConnectionAutoRelease.java Fri Oct 2 11:33:00 2009
@@ -42,8 +42,6 @@
import org.apache.http.HttpResponse;
import org.apache.http.MalformedChunkCodingException;
import org.apache.http.client.methods.HttpGet;
-import org.apache.http.conn.params.ConnPerRouteBean;
-import org.apache.http.conn.params.ConnManagerParams;
import org.apache.http.conn.routing.HttpRoute;
import org.apache.http.conn.scheme.SchemeRegistry;
import org.apache.http.entity.BasicHttpEntity;
@@ -51,7 +49,6 @@
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager;
import org.apache.http.localserver.ServerTestBase;
-import org.apache.http.params.HttpParams;
import org.apache.http.protocol.ExecutionContext;
import org.apache.http.protocol.HttpContext;
import org.apache.http.protocol.HttpRequestHandler;
@@ -72,27 +69,21 @@
return new TestSuite(TestConnectionAutoRelease.class);
}
- public ThreadSafeClientConnManager createTSCCM(HttpParams params,
- SchemeRegistry schreg) {
- if (params == null)
- params = defaultParams;
+ public ThreadSafeClientConnManager createTSCCM(SchemeRegistry schreg) {
if (schreg == null)
schreg = supportedSchemes;
- return new ThreadSafeClientConnManager(params, schreg);
+ return new ThreadSafeClientConnManager(schreg);
}
public void testReleaseOnEntityConsumeContent() throws Exception {
- HttpParams params = defaultParams.copy();
- ConnManagerParams.setMaxTotalConnections
- (params, 1);
- ConnManagerParams.setMaxConnectionsPerRoute
- (params, new ConnPerRouteBean(1));
- ThreadSafeClientConnManager mgr = createTSCCM(params, null);
+ ThreadSafeClientConnManager mgr = createTSCCM(null);
+ mgr.setDefaultMaxPerRoute(1);
+ mgr.setMaxTotalConnections(1);
// Zero connections in the pool
assertEquals(0, mgr.getConnectionsInPool());
- DefaultHttpClient client = new DefaultHttpClient(mgr, params);
+ DefaultHttpClient client = new DefaultHttpClient(mgr);
// Get some random data
HttpGet httpget = new HttpGet("/random/20000");
@@ -124,17 +115,14 @@
}
public void testReleaseOnEntityWriteTo() throws Exception {
- HttpParams params = defaultParams.copy();
- ConnManagerParams.setMaxTotalConnections
- (params, 1);
- ConnManagerParams.setMaxConnectionsPerRoute
- (params, new ConnPerRouteBean(1));
- ThreadSafeClientConnManager mgr = createTSCCM(params, null);
+ ThreadSafeClientConnManager mgr = createTSCCM(null);
+ mgr.setDefaultMaxPerRoute(1);
+ mgr.setMaxTotalConnections(1);
// Zero connections in the pool
assertEquals(0, mgr.getConnectionsInPool());
- DefaultHttpClient client = new DefaultHttpClient(mgr, params);
+ DefaultHttpClient client = new DefaultHttpClient(mgr);
// Get some random data
HttpGet httpget = new HttpGet("/random/20000");
@@ -167,17 +155,14 @@
}
public void testReleaseOnAbort() throws Exception {
- HttpParams params = defaultParams.copy();
- ConnManagerParams.setMaxTotalConnections
- (params, 1);
- ConnManagerParams.setMaxConnectionsPerRoute
- (params, new ConnPerRouteBean(1));
- ThreadSafeClientConnManager mgr = createTSCCM(params, null);
+ ThreadSafeClientConnManager mgr = createTSCCM(null);
+ mgr.setDefaultMaxPerRoute(1);
+ mgr.setMaxTotalConnections(1);
// Zero connections in the pool
assertEquals(0, mgr.getConnectionsInPool());
- DefaultHttpClient client = new DefaultHttpClient(mgr, params);
+ DefaultHttpClient client = new DefaultHttpClient(mgr);
// Get some random data
HttpGet httpget = new HttpGet("/random/20000");
@@ -242,17 +227,14 @@
});
- HttpParams params = defaultParams.copy();
- ConnManagerParams.setMaxTotalConnections
- (params, 1);
- ConnManagerParams.setMaxConnectionsPerRoute
- (params, new ConnPerRouteBean(1));
- ThreadSafeClientConnManager mgr = createTSCCM(params, null);
+ ThreadSafeClientConnManager mgr = createTSCCM(null);
+ mgr.setDefaultMaxPerRoute(1);
+ mgr.setMaxTotalConnections(1);
// Zero connections in the pool
assertEquals(0, mgr.getConnectionsInPool());
- DefaultHttpClient client = new DefaultHttpClient(mgr, params);
+ DefaultHttpClient client = new DefaultHttpClient(mgr);
// Get some random data
HttpGet httpget = new HttpGet("/dropdead");
Modified: httpcomponents/httpclient/trunk/httpclient/src/test/java/org/apache/http/conn/TestConnectionReuse.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient/src/test/java/org/apache/http/conn/TestConnectionReuse.java?rev=820971&r1=820970&r2=820971&view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/httpclient/src/test/java/org/apache/http/conn/TestConnectionReuse.java (original)
+++ httpcomponents/httpclient/trunk/httpclient/src/test/java/org/apache/http/conn/TestConnectionReuse.java Fri Oct 2 11:33:00 2009
@@ -44,8 +44,6 @@
import org.apache.http.HttpVersion;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
-import org.apache.http.conn.params.ConnManagerParams;
-import org.apache.http.conn.params.ConnPerRouteBean;
import org.apache.http.conn.scheme.PlainSocketFactory;
import org.apache.http.conn.scheme.Scheme;
import org.apache.http.conn.scheme.SchemeRegistry;
@@ -110,16 +108,14 @@
HttpProtocolParams.setUserAgent(params, "TestAgent/1.1");
HttpProtocolParams.setUseExpectContinue(params, false);
HttpConnectionParams.setStaleCheckingEnabled(params, false);
- ConnManagerParams.setMaxTotalConnections(params, 5);
- ConnManagerParams.setMaxConnectionsPerRoute(params,
- new ConnPerRouteBean(5));
SchemeRegistry supportedSchemes = new SchemeRegistry();
SocketFactory sf = PlainSocketFactory.getSocketFactory();
supportedSchemes.register(new Scheme("http", sf, 80));
- ThreadSafeClientConnManager mgr = new ThreadSafeClientConnManager(
- params, supportedSchemes);
+ ThreadSafeClientConnManager mgr = new ThreadSafeClientConnManager(supportedSchemes);
+ mgr.setMaxTotalConnections(5);
+ mgr.setDefaultMaxPerRoute(5);
DefaultHttpClient client = new DefaultHttpClient(mgr, params);
@@ -182,16 +178,14 @@
HttpProtocolParams.setUserAgent(params, "TestAgent/1.1");
HttpProtocolParams.setUseExpectContinue(params, false);
HttpConnectionParams.setStaleCheckingEnabled(params, false);
- ConnManagerParams.setMaxTotalConnections(params, 5);
- ConnManagerParams.setMaxConnectionsPerRoute(params,
- new ConnPerRouteBean(5));
SchemeRegistry supportedSchemes = new SchemeRegistry();
SocketFactory sf = PlainSocketFactory.getSocketFactory();
supportedSchemes.register(new Scheme("http", sf, 80));
- ThreadSafeClientConnManager mgr = new ThreadSafeClientConnManager(
- params, supportedSchemes);
+ ThreadSafeClientConnManager mgr = new ThreadSafeClientConnManager(supportedSchemes);
+ mgr.setMaxTotalConnections(5);
+ mgr.setDefaultMaxPerRoute(5);
DefaultHttpClient client = new DefaultHttpClient(mgr, params);
@@ -244,16 +238,14 @@
HttpProtocolParams.setUserAgent(params, "TestAgent/1.1");
HttpProtocolParams.setUseExpectContinue(params, false);
HttpConnectionParams.setStaleCheckingEnabled(params, false);
- ConnManagerParams.setMaxTotalConnections(params, 5);
- ConnManagerParams.setMaxConnectionsPerRoute(params,
- new ConnPerRouteBean(5));
SchemeRegistry supportedSchemes = new SchemeRegistry();
SocketFactory sf = PlainSocketFactory.getSocketFactory();
supportedSchemes.register(new Scheme("http", sf, 80));
- ThreadSafeClientConnManager mgr = new ThreadSafeClientConnManager(
- params, supportedSchemes);
+ ThreadSafeClientConnManager mgr = new ThreadSafeClientConnManager(supportedSchemes);
+ mgr.setMaxTotalConnections(5);
+ mgr.setDefaultMaxPerRoute(5);
DefaultHttpClient client = new DefaultHttpClient(mgr, params);
@@ -307,16 +299,14 @@
HttpProtocolParams.setUserAgent(params, "TestAgent/1.1");
HttpProtocolParams.setUseExpectContinue(params, false);
HttpConnectionParams.setStaleCheckingEnabled(params, false);
- ConnManagerParams.setMaxTotalConnections(params, 1);
- ConnManagerParams.setMaxConnectionsPerRoute(params,
- new ConnPerRouteBean(1));
SchemeRegistry supportedSchemes = new SchemeRegistry();
SocketFactory sf = PlainSocketFactory.getSocketFactory();
supportedSchemes.register(new Scheme("http", sf, 80));
- ThreadSafeClientConnManager mgr = new ThreadSafeClientConnManager(
- params, supportedSchemes);
+ ThreadSafeClientConnManager mgr = new ThreadSafeClientConnManager(supportedSchemes);
+ mgr.setMaxTotalConnections(1);
+ mgr.setDefaultMaxPerRoute(1);
DefaultHttpClient client = new DefaultHttpClient(mgr, params);
HttpHost target = new HttpHost(saddress.getHostName(), saddress.getPort(), "http");
Modified: httpcomponents/httpclient/trunk/httpclient/src/test/java/org/apache/http/impl/client/TestContentCodings.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient/src/test/java/org/apache/http/impl/client/TestContentCodings.java?rev=820971&r1=820970&r2=820971&view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/httpclient/src/test/java/org/apache/http/impl/client/TestContentCodings.java (original)
+++ httpcomponents/httpclient/trunk/httpclient/src/test/java/org/apache/http/impl/client/TestContentCodings.java Fri Oct 2 11:33:00 2009
@@ -37,9 +37,6 @@
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.zip.Deflater;
-
-/* Don't use Java 6 functionality, even in tests. */
-//import java.util.zip.DeflaterInputStream;
import java.util.zip.GZIPOutputStream;
import org.apache.http.Header;
@@ -51,12 +48,10 @@
import org.apache.http.HttpResponse;
import org.apache.http.HttpResponseInterceptor;
import org.apache.http.HttpStatus;
-import org.apache.http.HttpVersion;
import org.apache.http.client.HttpClient;
+import org.apache.http.client.entity.DeflateDecompressingEntity;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.protocol.RequestAcceptEncoding;
-import org.apache.http.conn.ClientConnectionManager;
-import org.apache.http.conn.params.ConnManagerParams;
import org.apache.http.conn.scheme.PlainSocketFactory;
import org.apache.http.conn.scheme.Scheme;
import org.apache.http.conn.scheme.SchemeRegistry;
@@ -64,9 +59,6 @@
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager;
import org.apache.http.localserver.ServerTestBase;
-import org.apache.http.params.BasicHttpParams;
-import org.apache.http.params.HttpParams;
-import org.apache.http.params.HttpProtocolParams;
import org.apache.http.protocol.HttpContext;
import org.apache.http.protocol.HttpRequestHandler;
import org.apache.http.util.EntityUtils;
@@ -192,15 +184,13 @@
*/
int clients = 100;
- HttpParams params = new BasicHttpParams();
- ConnManagerParams.setMaxTotalConnections(params, clients);
- HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);
-
SchemeRegistry schemeRegistry = new SchemeRegistry();
schemeRegistry.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), 80));
- ClientConnectionManager cm = new ThreadSafeClientConnManager(params, schemeRegistry);
- final HttpClient httpClient = new DefaultHttpClient(cm, params);
+ ThreadSafeClientConnManager cm = new ThreadSafeClientConnManager(schemeRegistry);
+ cm.setMaxTotalConnections(clients);
+
+ final HttpClient httpClient = new DefaultHttpClient(cm);
ExecutorService executor = Executors.newFixedThreadPool(clients);
Modified: httpcomponents/httpclient/trunk/httpclient/src/test/java/org/apache/http/impl/client/TestDefaultClientRequestDirector.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient/src/test/java/org/apache/http/impl/client/TestDefaultClientRequestDirector.java?rev=820971&r1=820970&r2=820971&view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/httpclient/src/test/java/org/apache/http/impl/client/TestDefaultClientRequestDirector.java (original)
+++ httpcomponents/httpclient/trunk/httpclient/src/test/java/org/apache/http/impl/client/TestDefaultClientRequestDirector.java Fri Oct 2 11:33:00 2009
@@ -152,7 +152,7 @@
SchemeRegistry registry = new SchemeRegistry();
registry.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), 80));
- SingleClientConnManager conMan = new SingleClientConnManager(new BasicHttpParams(), registry);
+ SingleClientConnManager conMan = new SingleClientConnManager(registry);
final AtomicReference<Throwable> throwableRef = new AtomicReference<Throwable>();
final CountDownLatch getLatch = new CountDownLatch(1);
final DefaultHttpClient client = new DefaultHttpClient(conMan, new BasicHttpParams());
@@ -192,7 +192,7 @@
SchemeRegistry registry = new SchemeRegistry();
registry.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), 80));
- SingleClientConnManager conMan = new SingleClientConnManager(new BasicHttpParams(), registry);
+ SingleClientConnManager conMan = new SingleClientConnManager(registry);
final AtomicReference<Throwable> throwableRef = new AtomicReference<Throwable>();
final CountDownLatch getLatch = new CountDownLatch(1);
final CountDownLatch startLatch = new CountDownLatch(1);
@@ -240,7 +240,7 @@
CountDownLatch connLatch = new CountDownLatch(1);
CountDownLatch awaitLatch = new CountDownLatch(1);
- ConnMan4 conMan = new ConnMan4(new BasicHttpParams(), registry, connLatch, awaitLatch);
+ ConnMan4 conMan = new ConnMan4(registry, connLatch, awaitLatch);
final AtomicReference<Throwable> throwableRef = new AtomicReference<Throwable>();
final CountDownLatch getLatch = new CountDownLatch(1);
final DefaultHttpClient client = new DefaultHttpClient(conMan, new BasicHttpParams());
@@ -297,7 +297,7 @@
SchemeRegistry registry = new SchemeRegistry();
registry.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), 80));
- ConnMan3 conMan = new ConnMan3(new BasicHttpParams(), registry);
+ ConnMan3 conMan = new ConnMan3(registry);
DefaultHttpClient client = new DefaultHttpClient(conMan, new BasicHttpParams());
HttpGet httpget = new HttpGet("/a");
@@ -351,9 +351,9 @@
private final CountDownLatch connLatch;
private final CountDownLatch awaitLatch;
- public ConnMan4(HttpParams params, SchemeRegistry schreg,
+ public ConnMan4(SchemeRegistry schreg,
CountDownLatch connLatch, CountDownLatch awaitLatch) {
- super(params, schreg);
+ super(schreg);
this.connLatch = connLatch;
this.awaitLatch = awaitLatch;
}
@@ -398,8 +398,8 @@
private ManagedClientConnection allocatedConnection;
private ManagedClientConnection releasedConnection;
- public ConnMan3(HttpParams params, SchemeRegistry schreg) {
- super(params, schreg);
+ public ConnMan3(SchemeRegistry schreg) {
+ super(schreg);
}
@Override
Modified: httpcomponents/httpclient/trunk/httpclient/src/test/java/org/apache/http/impl/client/TestStatefulConnManagement.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient/src/test/java/org/apache/http/impl/client/TestStatefulConnManagement.java?rev=820971&r1=820970&r2=820971&view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/httpclient/src/test/java/org/apache/http/impl/client/TestStatefulConnManagement.java (original)
+++ httpcomponents/httpclient/trunk/httpclient/src/test/java/org/apache/http/impl/client/TestStatefulConnManagement.java Fri Oct 2 11:33:00 2009
@@ -40,11 +40,11 @@
import org.apache.http.client.UserTokenHandler;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.conn.ManagedClientConnection;
-import org.apache.http.conn.params.ConnPerRouteBean;
import org.apache.http.conn.params.ConnManagerParams;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager;
import org.apache.http.localserver.ServerTestBase;
+import org.apache.http.params.BasicHttpParams;
import org.apache.http.params.HttpParams;
import org.apache.http.protocol.BasicHttpContext;
import org.apache.http.protocol.ExecutionContext;
@@ -95,14 +95,13 @@
HttpHost target = new HttpHost("localhost", port);
- HttpParams params = defaultParams.copy();
- ConnManagerParams.setMaxTotalConnections(params, workerCount);
- ConnManagerParams.setMaxConnectionsPerRoute(params,
- new ConnPerRouteBean(workerCount));
+ HttpParams params = new BasicHttpParams();
ConnManagerParams.setTimeout(params, 10L);
- ThreadSafeClientConnManager mgr = new ThreadSafeClientConnManager(
- params, supportedSchemes);
+ ThreadSafeClientConnManager mgr = new ThreadSafeClientConnManager(supportedSchemes);
+ mgr.setMaxTotalConnections(workerCount);
+ mgr.setDefaultMaxPerRoute(workerCount);
+
DefaultHttpClient client = new DefaultHttpClient(mgr, params);
Modified: httpcomponents/httpclient/trunk/httpclient/src/test/java/org/apache/http/impl/conn/TestSCMWithServer.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient/src/test/java/org/apache/http/impl/conn/TestSCMWithServer.java?rev=820971&r1=820970&r2=820971&view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/httpclient/src/test/java/org/apache/http/impl/conn/TestSCMWithServer.java (original)
+++ httpcomponents/httpclient/trunk/httpclient/src/test/java/org/apache/http/impl/conn/TestSCMWithServer.java Fri Oct 2 11:33:00 2009
@@ -38,12 +38,10 @@
import org.apache.http.HttpStatus;
import org.apache.http.HttpVersion;
import org.apache.http.conn.ManagedClientConnection;
-import org.apache.http.conn.params.ConnManagerParams;
import org.apache.http.conn.routing.HttpRoute;
import org.apache.http.conn.scheme.SchemeRegistry;
import org.apache.http.localserver.ServerTestBase;
import org.apache.http.message.BasicHttpRequest;
-import org.apache.http.params.HttpParams;
import org.apache.http.protocol.ExecutionContext;
import org.apache.http.util.EntityUtils;
@@ -72,14 +70,10 @@
*
* @return a connection manager to test
*/
- public SingleClientConnManager createSCCM(HttpParams params,
- SchemeRegistry schreg) {
- if (params == null)
- params = defaultParams;
+ public SingleClientConnManager createSCCM(SchemeRegistry schreg) {
if (schreg == null)
schreg = supportedSchemes;
-
- return new SingleClientConnManager(params, schreg);
+ return new SingleClientConnManager(schreg);
}
/**
@@ -87,10 +81,7 @@
* a connection was aborted.
*/
public void testOpenAfterAbort() throws Exception {
- HttpParams mgrpar = defaultParams.copy();
- ConnManagerParams.setMaxTotalConnections(mgrpar, 1);
-
- SingleClientConnManager mgr = createSCCM(mgrpar, null);
+ SingleClientConnManager mgr = createSCCM(null);
final HttpHost target = getServerHttp();
final HttpRoute route = new HttpRoute(target, null, false);
@@ -112,10 +103,7 @@
*/
public void testReleaseConnectionWithTimeLimits() throws Exception {
- HttpParams mgrpar = defaultParams.copy();
- ConnManagerParams.setMaxTotalConnections(mgrpar, 1);
-
- SingleClientConnManager mgr = createSCCM(mgrpar, null);
+ SingleClientConnManager mgr = createSCCM(null);
final HttpHost target = getServerHttp();
final HttpRoute route = new HttpRoute(target, null, false);
@@ -207,10 +195,7 @@
public void testCloseExpiredConnections() throws Exception {
- HttpParams mgrpar = defaultParams.copy();
- ConnManagerParams.setMaxTotalConnections(mgrpar, 1);
-
- SingleClientConnManager mgr = createSCCM(mgrpar, null);
+ SingleClientConnManager mgr = createSCCM(null);
final HttpHost target = getServerHttp();
final HttpRoute route = new HttpRoute(target, null, false);
@@ -235,10 +220,7 @@
public void testAlreadyLeased() throws Exception {
- HttpParams mgrpar = defaultParams.copy();
- ConnManagerParams.setMaxTotalConnections(mgrpar, 1);
-
- SingleClientConnManager mgr = createSCCM(mgrpar, null);
+ SingleClientConnManager mgr = createSCCM(null);
final HttpHost target = getServerHttp();
final HttpRoute route = new HttpRoute(target, null, false);
Modified: httpcomponents/httpclient/trunk/httpclient/src/test/java/org/apache/http/impl/conn/TestTSCCMNoServer.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient/src/test/java/org/apache/http/impl/conn/TestTSCCMNoServer.java?rev=820971&r1=820970&r2=820971&view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/httpclient/src/test/java/org/apache/http/impl/conn/TestTSCCMNoServer.java (original)
+++ httpcomponents/httpclient/trunk/httpclient/src/test/java/org/apache/http/impl/conn/TestTSCCMNoServer.java Fri Oct 2 11:33:00 2009
@@ -39,8 +39,6 @@
import org.apache.http.conn.ClientConnectionRequest;
import org.apache.http.conn.ConnectionPoolTimeoutException;
import org.apache.http.conn.ManagedClientConnection;
-import org.apache.http.conn.params.ConnPerRouteBean;
-import org.apache.http.conn.params.ConnManagerParams;
import org.apache.http.conn.routing.HttpRoute;
import org.apache.http.conn.scheme.PlainSocketFactory;
import org.apache.http.conn.scheme.Scheme;
@@ -51,7 +49,6 @@
import org.apache.http.params.HttpParams;
import org.apache.http.params.HttpProtocolParams;
-
/**
* Tests for <code>ThreadSafeClientConnManager</code> that do not require
* a server to communicate with.
@@ -98,14 +95,10 @@
*
* @return a connection manager to test
*/
- public ThreadSafeClientConnManager createTSCCM(HttpParams params,
- SchemeRegistry schreg) {
- if (params == null)
- params = createDefaultParams();
+ public ThreadSafeClientConnManager createTSCCM(SchemeRegistry schreg) {
if (schreg == null)
schreg = createSchemeRegistry();
-
- return new ThreadSafeClientConnManager(params, schreg);
+ return new ThreadSafeClientConnManager(schreg);
}
@@ -139,37 +132,28 @@
public void testConstructor() {
- HttpParams params = createDefaultParams();
SchemeRegistry schreg = createSchemeRegistry();
- ThreadSafeClientConnManager mgr =
- new ThreadSafeClientConnManager(params, schreg);
+ ThreadSafeClientConnManager mgr = new ThreadSafeClientConnManager(schreg);
assertNotNull(mgr);
mgr.shutdown();
mgr = null;
try {
- mgr = new ThreadSafeClientConnManager(null, schreg);
- fail("null parameters not detected");
+ mgr = new ThreadSafeClientConnManager(null);
+ fail("null parameter not detected");
} catch (IllegalArgumentException iax) {
// expected
} finally {
if (mgr != null)
mgr.shutdown();
}
- mgr = null;
-
- mgr = new ThreadSafeClientConnManager(params, schreg);
- assertNotNull(mgr);
- mgr.shutdown();
- mgr = null;
-
} // testConstructor
public void testGetConnection()
throws InterruptedException, ConnectionPoolTimeoutException {
- ThreadSafeClientConnManager mgr = createTSCCM(null, null);
+ ThreadSafeClientConnManager mgr = createTSCCM(null);
HttpHost target = new HttpHost("www.test.invalid", 80, "http");
HttpRoute route = new HttpRoute(target, null, false);
@@ -198,11 +182,9 @@
public void testMaxConnTotal()
throws InterruptedException, ConnectionPoolTimeoutException {
- HttpParams params = createDefaultParams();
- ConnManagerParams.setMaxConnectionsPerRoute(params, new ConnPerRouteBean(1));
- ConnManagerParams.setMaxTotalConnections(params, 2);
-
- ThreadSafeClientConnManager mgr = createTSCCM(params, null);
+ ThreadSafeClientConnManager mgr = createTSCCM(null);
+ mgr.setMaxTotalConnections(2);
+ mgr.setDefaultMaxPerRoute(1);
HttpHost target1 = new HttpHost("www.test1.invalid", 80, "http");
HttpRoute route1 = new HttpRoute(target1, null, false);
@@ -247,16 +229,11 @@
HttpHost target3 = new HttpHost("www.test3.invalid", 80, "http");
HttpRoute route3 = new HttpRoute(target3, null, false);
- HttpParams params = createDefaultParams();
- ConnManagerParams.setMaxTotalConnections(params, 100);
-
- ConnPerRouteBean connPerRoute = new ConnPerRouteBean(1);
- connPerRoute.setMaxForRoute(route2, 2);
- connPerRoute.setMaxForRoute(route3, 3);
-
- ConnManagerParams.setMaxConnectionsPerRoute(params, connPerRoute);
-
- ThreadSafeClientConnManager mgr = createTSCCM(params, null);
+ ThreadSafeClientConnManager mgr = createTSCCM(null);
+ mgr.setMaxTotalConnections(100);
+ mgr.setDefaultMaxPerRoute(1);
+ mgr.setMaxForRoute(route2, 2);
+ mgr.setMaxForRoute(route3, 3);
// route 3, limit 3
ManagedClientConnection conn1 =
@@ -318,11 +295,9 @@
public void testReleaseConnection() throws Exception {
- HttpParams params = createDefaultParams();
- ConnManagerParams.setMaxConnectionsPerRoute(params, new ConnPerRouteBean(1));
- ConnManagerParams.setMaxTotalConnections(params, 3);
-
- ThreadSafeClientConnManager mgr = createTSCCM(params, null);
+ ThreadSafeClientConnManager mgr = createTSCCM(null);
+ mgr.setMaxTotalConnections(3);
+ mgr.setDefaultMaxPerRoute(1);
HttpHost target1 = new HttpHost("www.test1.invalid", 80, "http");
HttpRoute route1 = new HttpRoute(target1, null, false);
@@ -389,7 +364,7 @@
public void testDeleteClosedConnections()
throws InterruptedException, ConnectionPoolTimeoutException {
- ThreadSafeClientConnManager mgr = createTSCCM(null, null);
+ ThreadSafeClientConnManager mgr = createTSCCM(null);
HttpHost target = new HttpHost("www.test.invalid", 80, "http");
HttpRoute route = new HttpRoute(target, null, false);
@@ -421,11 +396,9 @@
public void testShutdown() throws Exception {
// 3.x: TestHttpConnectionManager.testShutdown
- HttpParams params = createDefaultParams();
- ConnManagerParams.setMaxConnectionsPerRoute(params, new ConnPerRouteBean(1));
- ConnManagerParams.setMaxTotalConnections(params, 1);
-
- ThreadSafeClientConnManager mgr = createTSCCM(params, null);
+ ThreadSafeClientConnManager mgr = createTSCCM(null);
+ mgr.setMaxTotalConnections(1);
+ mgr.setDefaultMaxPerRoute(1);
HttpHost target = new HttpHost("www.test.invalid", 80, "http");
HttpRoute route = new HttpRoute(target, null, false);
@@ -469,10 +442,8 @@
public void testInterruptThread() throws Exception {
// 3.x: TestHttpConnectionManager.testWaitingThreadInterrupted
- HttpParams params = createDefaultParams();
- ConnManagerParams.setMaxTotalConnections(params, 1);
-
- ThreadSafeClientConnManager mgr = createTSCCM(params, null);
+ ThreadSafeClientConnManager mgr = createTSCCM(null);
+ mgr.setMaxTotalConnections(1);
HttpHost target = new HttpHost("www.test.invalid", 80, "http");
HttpRoute route = new HttpRoute(target, null, false);
@@ -517,10 +488,8 @@
public void testReusePreference() throws Exception {
// 3.x: TestHttpConnectionManager.testHostReusePreference
- HttpParams params = createDefaultParams();
- ConnManagerParams.setMaxTotalConnections(params, 1);
-
- ThreadSafeClientConnManager mgr = createTSCCM(params, null);
+ ThreadSafeClientConnManager mgr = createTSCCM(null);
+ mgr.setMaxTotalConnections(1);
HttpHost target1 = new HttpHost("www.test1.invalid", 80, "http");
HttpRoute route1 = new HttpRoute(target1, null, false);
@@ -557,10 +526,8 @@
}
public void testAbortAfterRequestStarts() throws Exception {
- HttpParams params = createDefaultParams();
- ConnManagerParams.setMaxTotalConnections(params, 1);
-
- ThreadSafeClientConnManager mgr = createTSCCM(params, null);
+ ThreadSafeClientConnManager mgr = createTSCCM(null);
+ mgr.setMaxTotalConnections(1);
HttpHost target = new HttpHost("www.test.invalid", 80, "http");
HttpRoute route = new HttpRoute(target, null, false);
@@ -598,15 +565,12 @@
}
public void testAbortBeforeRequestStarts() throws Exception {
- HttpParams params = createDefaultParams();
- ConnManagerParams.setMaxTotalConnections(params, 1);
-
- ThreadSafeClientConnManager mgr = createTSCCM(params, null);
+ ThreadSafeClientConnManager mgr = createTSCCM(null);
+ mgr.setMaxTotalConnections(1);
HttpHost target = new HttpHost("www.test.invalid", 80, "http");
HttpRoute route = new HttpRoute(target, null, false);
-
// get the only connection, then start an extra thread
ManagedClientConnection conn = getConnection(mgr, route, 1L, TimeUnit.MILLISECONDS);
ClientConnectionRequest request = mgr.requestConnection(route, null);
Modified: httpcomponents/httpclient/trunk/httpclient/src/test/java/org/apache/http/impl/conn/TestTSCCMWithServer.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient/src/test/java/org/apache/http/impl/conn/TestTSCCMWithServer.java?rev=820971&r1=820970&r2=820971&view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/httpclient/src/test/java/org/apache/http/impl/conn/TestTSCCMWithServer.java (original)
+++ httpcomponents/httpclient/trunk/httpclient/src/test/java/org/apache/http/impl/conn/TestTSCCMWithServer.java Fri Oct 2 11:33:00 2009
@@ -27,7 +27,6 @@
package org.apache.http.impl.conn;
-
import java.io.IOException;
import java.lang.ref.WeakReference;
import java.net.InetAddress;
@@ -53,8 +52,6 @@
import org.apache.http.conn.ConnectionPoolTimeoutException;
import org.apache.http.conn.ManagedClientConnection;
import org.apache.http.conn.OperatedClientConnection;
-import org.apache.http.conn.params.ConnPerRouteBean;
-import org.apache.http.conn.params.ConnManagerParams;
import org.apache.http.conn.routing.HttpRoute;
import org.apache.http.conn.scheme.PlainSocketFactory;
import org.apache.http.conn.scheme.Scheme;
@@ -69,7 +66,6 @@
import org.apache.http.protocol.HttpContext;
import org.apache.http.util.EntityUtils;
-
/**
* Tests for <code>ThreadSafeClientConnManager</code> that do require
* a server to communicate with.
@@ -114,14 +110,10 @@
*
* @return a connection manager to test
*/
- public ThreadSafeClientConnManager createTSCCM(HttpParams params,
- SchemeRegistry schreg) {
- if (params == null)
- params = defaultParams;
+ public ThreadSafeClientConnManager createTSCCM(SchemeRegistry schreg) {
if (schreg == null)
schreg = supportedSchemes;
-
- return new ThreadSafeClientConnManager(params, schreg);
+ return new ThreadSafeClientConnManager(schreg);
}
@@ -134,12 +126,9 @@
final int COUNT = 8; // adjust to execute more requests
- HttpParams mgrpar = defaultParams.copy();
- ConnManagerParams.setMaxTotalConnections
- (mgrpar, COUNT/2);
- ConnManagerParams.setMaxConnectionsPerRoute
- (mgrpar, new ConnPerRouteBean(COUNT/2));
- ThreadSafeClientConnManager mgr = createTSCCM(mgrpar, null);
+ ThreadSafeClientConnManager mgr = createTSCCM(null);
+ mgr.setMaxTotalConnections(COUNT/2);
+ mgr.setDefaultMaxPerRoute(COUNT/2);
final HttpHost target = getServerHttp();
final HttpRoute route = new HttpRoute(target, null, false);
@@ -209,10 +198,8 @@
*/
public void testReleaseConnection() throws Exception {
- HttpParams mgrpar = defaultParams.copy();
- ConnManagerParams.setMaxTotalConnections(mgrpar, 1);
-
- ThreadSafeClientConnManager mgr = createTSCCM(mgrpar, null);
+ ThreadSafeClientConnManager mgr = createTSCCM(null);
+ mgr.setMaxTotalConnections(1);
final HttpHost target = getServerHttp();
final HttpRoute route = new HttpRoute(target, null, false);
@@ -296,10 +283,8 @@
*/
public void testReleaseConnectionWithTimeLimits() throws Exception {
- HttpParams mgrpar = defaultParams.copy();
- ConnManagerParams.setMaxTotalConnections(mgrpar, 1);
-
- ThreadSafeClientConnManager mgr = createTSCCM(mgrpar, null);
+ ThreadSafeClientConnManager mgr = createTSCCM(null);
+ mgr.setMaxTotalConnections(1);
final HttpHost target = getServerHttp();
final HttpRoute route = new HttpRoute(target, null, false);
@@ -400,10 +385,8 @@
public void testCloseExpiredConnections() throws Exception {
- HttpParams mgrpar = defaultParams.copy();
- ConnManagerParams.setMaxTotalConnections(mgrpar, 1);
-
- ThreadSafeClientConnManager mgr = createTSCCM(mgrpar, null);
+ ThreadSafeClientConnManager mgr = createTSCCM(null);
+ mgr.setMaxTotalConnections(1);
final HttpHost target = getServerHttp();
final HttpRoute route = new HttpRoute(target, null, false);
@@ -443,10 +426,8 @@
*/
public void testReleaseConnectionOnAbort() throws Exception {
- HttpParams mgrpar = defaultParams.copy();
- ConnManagerParams.setMaxTotalConnections(mgrpar, 1);
-
- ThreadSafeClientConnManager mgr = createTSCCM(mgrpar, null);
+ ThreadSafeClientConnManager mgr = createTSCCM(null);
+ mgr.setMaxTotalConnections(1);
final HttpHost target = getServerHttp();
final HttpRoute route = new HttpRoute(target, null, false);
@@ -495,7 +476,7 @@
public void testConnectionManagerGC() throws Exception {
// 3.x: TestHttpConnectionManager.testDroppedThread
- ThreadSafeClientConnManager mgr = createTSCCM(null, null);
+ ThreadSafeClientConnManager mgr = createTSCCM(null);
final HttpHost target = getServerHttp();
final HttpRoute route = new HttpRoute(target, null, false);
@@ -539,16 +520,14 @@
}
public void testAbortDuringConnecting() throws Exception {
- HttpParams mgrpar = defaultParams.copy();
- ConnManagerParams.setMaxTotalConnections(mgrpar, 1);
-
final CountDownLatch connectLatch = new CountDownLatch(1);
final StallingSocketFactory stallingSocketFactory = new StallingSocketFactory(connectLatch, WaitPolicy.BEFORE_CONNECT, PlainSocketFactory.getSocketFactory());
Scheme scheme = new Scheme("http", stallingSocketFactory, 80);
SchemeRegistry registry = new SchemeRegistry();
registry.register(scheme);
- ThreadSafeClientConnManager mgr = createTSCCM(mgrpar, registry);
+ ThreadSafeClientConnManager mgr = createTSCCM(registry);
+ mgr.setMaxTotalConnections(1);
final HttpHost target = getServerHttp();
final HttpRoute route = new HttpRoute(target, null, false);
@@ -603,16 +582,14 @@
}
public void testAbortBeforeSocketCreate() throws Exception {
- HttpParams mgrpar = defaultParams.copy();
- ConnManagerParams.setMaxTotalConnections(mgrpar, 1);
-
final CountDownLatch connectLatch = new CountDownLatch(1);
final StallingSocketFactory stallingSocketFactory = new StallingSocketFactory(connectLatch, WaitPolicy.BEFORE_CREATE, PlainSocketFactory.getSocketFactory());
Scheme scheme = new Scheme("http", stallingSocketFactory, 80);
SchemeRegistry registry = new SchemeRegistry();
registry.register(scheme);
- ThreadSafeClientConnManager mgr = createTSCCM(mgrpar, registry);
+ ThreadSafeClientConnManager mgr = createTSCCM(registry);
+ mgr.setMaxTotalConnections(1);
final HttpHost target = getServerHttp();
final HttpRoute route = new HttpRoute(target, null, false);
@@ -669,16 +646,14 @@
}
public void testAbortAfterSocketConnect() throws Exception {
- HttpParams mgrpar = defaultParams.copy();
- ConnManagerParams.setMaxTotalConnections(mgrpar, 1);
-
final CountDownLatch connectLatch = new CountDownLatch(1);
final StallingSocketFactory stallingSocketFactory = new StallingSocketFactory(connectLatch, WaitPolicy.AFTER_CONNECT, PlainSocketFactory.getSocketFactory());
Scheme scheme = new Scheme("http", stallingSocketFactory, 80);
SchemeRegistry registry = new SchemeRegistry();
registry.register(scheme);
- ThreadSafeClientConnManager mgr = createTSCCM(mgrpar, registry);
+ ThreadSafeClientConnManager mgr = createTSCCM(registry);
+ mgr.setMaxTotalConnections(1);
final HttpHost target = getServerHttp();
final HttpRoute route = new HttpRoute(target, null, false);
@@ -740,13 +715,10 @@
}
public void testAbortAfterOperatorOpen() throws Exception {
- HttpParams mgrpar = defaultParams.copy();
- ConnManagerParams.setMaxTotalConnections(mgrpar, 1);
-
final CountDownLatch connectLatch = new CountDownLatch(1);
final AtomicReference<StallingOperator> operatorRef = new AtomicReference<StallingOperator>();
- ThreadSafeClientConnManager mgr = new ThreadSafeClientConnManager(mgrpar, supportedSchemes) {
+ ThreadSafeClientConnManager mgr = new ThreadSafeClientConnManager(supportedSchemes) {
@Override
protected ClientConnectionOperator createConnectionOperator(
SchemeRegistry schreg) {
@@ -754,6 +726,7 @@
return operatorRef.get();
}
};
+ mgr.setMaxTotalConnections(1);
assertNotNull(operatorRef.get());
final HttpHost target = getServerHttp();
Modified: httpcomponents/httpclient/trunk/httpclient/src/test/java/org/apache/http/impl/conn/tsccm/TestConnPoolByRoute.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient/src/test/java/org/apache/http/impl/conn/tsccm/TestConnPoolByRoute.java?rev=820971&r1=820970&r2=820971&view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/httpclient/src/test/java/org/apache/http/impl/conn/tsccm/TestConnPoolByRoute.java (original)
+++ httpcomponents/httpclient/trunk/httpclient/src/test/java/org/apache/http/impl/conn/tsccm/TestConnPoolByRoute.java Fri Oct 2 11:33:00 2009
@@ -36,11 +36,9 @@
import org.apache.http.conn.ClientConnectionOperator;
import org.apache.http.conn.ConnectionPoolTimeoutException;
import org.apache.http.conn.params.ConnPerRouteBean;
-import org.apache.http.conn.params.ConnManagerParams;
import org.apache.http.conn.routing.HttpRoute;
import org.apache.http.impl.conn.DefaultClientConnectionOperator;
import org.apache.http.localserver.ServerTestBase;
-import org.apache.http.params.BasicHttpParams;
public class TestConnPoolByRoute extends ServerTestBase {
@@ -64,11 +62,8 @@
ClientConnectionOperator operator = new DefaultClientConnectionOperator(
supportedSchemes);
- BasicHttpParams params = new BasicHttpParams();
ConnPerRouteBean connPerRoute = new ConnPerRouteBean(3);
- ConnManagerParams.setMaxConnectionsPerRoute(params, connPerRoute);
-
- ConnPoolByRoute connPool = new ConnPoolByRoute(operator, params);
+ ConnPoolByRoute connPool = new ConnPoolByRoute(operator, connPerRoute, 20);
try {
// Allocate max possible entries
PoolEntryRequest r1 = connPool.requestPoolEntry(route, null);
@@ -111,11 +106,8 @@
ClientConnectionOperator operator = new DefaultClientConnectionOperator(
supportedSchemes);
- BasicHttpParams params = new BasicHttpParams();
ConnPerRouteBean connPerRoute = new ConnPerRouteBean(3);
- ConnManagerParams.setMaxConnectionsPerRoute(params, connPerRoute);
-
- ConnPoolByRoute connPool = new ConnPoolByRoute(operator, params);
+ ConnPoolByRoute connPool = new ConnPoolByRoute(operator, connPerRoute, 20);
try {
// Allocate max possible entries
PoolEntryRequest r1 = connPool.requestPoolEntry(route, null);
Modified: httpcomponents/httpclient/trunk/httpclient/src/test/java/org/apache/http/impl/conn/tsccm/TestSpuriousWakeup.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient/src/test/java/org/apache/http/impl/conn/tsccm/TestSpuriousWakeup.java?rev=820971&r1=820970&r2=820971&view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/httpclient/src/test/java/org/apache/http/impl/conn/tsccm/TestSpuriousWakeup.java (original)
+++ httpcomponents/httpclient/trunk/httpclient/src/test/java/org/apache/http/impl/conn/tsccm/TestSpuriousWakeup.java Fri Oct 2 11:33:00 2009
@@ -35,7 +35,6 @@
import junit.framework.TestSuite;
import org.apache.http.HttpHost;
-import org.apache.http.HttpVersion;
import org.apache.http.conn.ClientConnectionOperator;
import org.apache.http.conn.ClientConnectionRequest;
import org.apache.http.conn.ManagedClientConnection;
@@ -44,17 +43,10 @@
import org.apache.http.conn.scheme.Scheme;
import org.apache.http.conn.scheme.SchemeRegistry;
import org.apache.http.conn.scheme.SocketFactory;
-import org.apache.http.conn.params.ConnPerRouteBean;
-import org.apache.http.conn.params.ConnManagerParams;
-import org.apache.http.params.BasicHttpParams;
-import org.apache.http.params.HttpParams;
-import org.apache.http.params.HttpProtocolParams;
+import org.apache.http.conn.params.ConnPerRoute;
-// test imports
import org.apache.http.impl.conn.GetConnThread;
-
-
/**
* Tests for spurious wakeups in <code>WaitingThread</code>.
* Requires some wrapping code to get at the lock and condition,
@@ -93,8 +85,11 @@
protected WaitingThread newestWT;
- public XConnPoolByRoute(ClientConnectionOperator operator, HttpParams params) {
- super(operator, params);
+ public XConnPoolByRoute(
+ final ClientConnectionOperator operator,
+ final ConnPerRoute connPerRoute,
+ int maxTotalConnections) {
+ super(operator, connPerRoute, maxTotalConnections);
}
@Override
@@ -118,13 +113,13 @@
protected XConnPoolByRoute extendedCPBR;
- public XTSCCM(HttpParams params, SchemeRegistry schreg) {
- super(params, schreg);
+ public XTSCCM(SchemeRegistry schreg) {
+ super(schreg);
}
@Override
- protected AbstractConnPool createConnectionPool(HttpParams params) {
- extendedCPBR = new XConnPoolByRoute(connOperator, params);
+ protected ConnPoolByRoute createConnectionPool() {
+ extendedCPBR = new XConnPoolByRoute(connOperator, connPerRoute, 20);
// no connection GC required
return extendedCPBR;
}
@@ -134,21 +129,15 @@
public void testSpuriousWakeup() throws Exception {
-
- // parameters with connection limit 1
- HttpParams params = new BasicHttpParams();
- HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);
- HttpProtocolParams.setUseExpectContinue(params, false);
- ConnManagerParams.setMaxConnectionsPerRoute(params, new ConnPerRouteBean(1));
- ConnManagerParams.setMaxTotalConnections(params, 1);
-
SchemeRegistry schreg = new SchemeRegistry();
SocketFactory sf = PlainSocketFactory.getSocketFactory();
schreg.register(new Scheme("http", sf, 80));
- XTSCCM mgr = new XTSCCM(params, schreg);
-
+ XTSCCM mgr = new XTSCCM(schreg);
try {
+ mgr.setMaxTotalConnections(1);
+ mgr.setDefaultMaxPerRoute(1);
+
// take out the only connection
ClientConnectionRequest connRequest = mgr.requestConnection(ROUTE, null);
ManagedClientConnection conn = connRequest.getConnection(0, null);