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 2011/08/12 13:59:31 UTC

svn commit: r1157060 - in /httpcomponents/httpcore/trunk: httpcore-nio/src/examples/org/apache/http/examples/nio/ httpcore-nio/src/main/java/org/apache/http/impl/nio/ httpcore-nio/src/main/java/org/apache/http/impl/nio/pool/ httpcore-nio/src/main/java/...

Author: olegk
Date: Fri Aug 12 11:59:30 2011
New Revision: 1157060

URL: http://svn.apache.org/viewvc?rev=1157060&view=rev
Log:
I/O dispatchers and the basic non-blocking connection pool to use timeout values defined in HTTP parameters; added minimal javadocs for new connection pooling classes

Modified:
    httpcomponents/httpcore/trunk/httpcore-nio/src/examples/org/apache/http/examples/nio/NHttpClient.java
    httpcomponents/httpcore/trunk/httpcore-nio/src/examples/org/apache/http/examples/nio/NHttpSSLClient.java
    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/pool/BasicNIOConnPool.java
    httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/impl/nio/pool/BasicNIOPoolEntry.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-nio/src/main/java/org/apache/http/nio/pool/AbstractNIOConnPool.java
    httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/impl/nio/pool/TestBasicNIOConnPool.java
    httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/pool/AbstractConnPool.java
    httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/pool/ConnPoolControl.java
    httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/pool/PoolEntry.java
    httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/pool/PoolStats.java

Modified: httpcomponents/httpcore/trunk/httpcore-nio/src/examples/org/apache/http/examples/nio/NHttpClient.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore-nio/src/examples/org/apache/http/examples/nio/NHttpClient.java?rev=1157060&r1=1157059&r2=1157060&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore-nio/src/examples/org/apache/http/examples/nio/NHttpClient.java (original)
+++ httpcomponents/httpcore/trunk/httpcore-nio/src/examples/org/apache/http/examples/nio/NHttpClient.java Fri Aug 12 11:59:30 2011
@@ -81,7 +81,7 @@ public class NHttpClient {
             .setParameter(CoreProtocolPNames.USER_AGENT, "Test/1.1");
 
 
-        BasicNIOConnPool pool = new BasicNIOConnPool(ioReactor);
+        BasicNIOConnPool pool = new BasicNIOConnPool(ioReactor, params);
         // Limit total number of connections to just two
         pool.setDefaultMaxPerRoute(2);
         pool.setMaxTotal(2);

Modified: httpcomponents/httpcore/trunk/httpcore-nio/src/examples/org/apache/http/examples/nio/NHttpSSLClient.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore-nio/src/examples/org/apache/http/examples/nio/NHttpSSLClient.java?rev=1157060&r1=1157059&r2=1157060&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore-nio/src/examples/org/apache/http/examples/nio/NHttpSSLClient.java (original)
+++ httpcomponents/httpcore/trunk/httpcore-nio/src/examples/org/apache/http/examples/nio/NHttpSSLClient.java Fri Aug 12 11:59:30 2011
@@ -83,7 +83,7 @@ public class NHttpSSLClient {
 
         final ConnectingIOReactor ioReactor = new DefaultConnectingIOReactor();
 
-        BasicNIOConnPool pool = new BasicNIOConnPool(ioReactor);
+        BasicNIOConnPool pool = new BasicNIOConnPool(ioReactor, params);
         // Limit total number of connections to just two
         pool.setDefaultMaxPerRoute(2);
         pool.setMaxTotal(2);

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=1157060&r1=1157059&r2=1157060&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 Fri Aug 12 11:59:30 2011
@@ -37,6 +37,7 @@ import org.apache.http.nio.reactor.IOEve
 import org.apache.http.nio.reactor.IOSession;
 import org.apache.http.nio.util.ByteBufferAllocator;
 import org.apache.http.nio.util.HeapByteBufferAllocator;
+import org.apache.http.params.HttpConnectionParams;
 import org.apache.http.params.HttpParams;
 import org.apache.http.protocol.ExecutionContext;
 
@@ -48,6 +49,7 @@ import org.apache.http.protocol.Executio
  * 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>
@@ -123,7 +125,7 @@ public class DefaultClientIOEventDispatc
      */
     protected NHttpClientIOTarget createConnection(final IOSession session) {
     	try {
-            return new DefaultNHttpClientConnection(
+    		return new DefaultNHttpClientConnection(
                     session,
                     createHttpResponseFactory(),
                     this.allocator,
@@ -139,7 +141,11 @@ public class DefaultClientIOEventDispatc
             NHttpClientIOTarget conn = createConnection(session);
             Object attachment = session.getAttribute(IOSession.ATTACHMENT_KEY);
             session.setAttribute(ExecutionContext.HTTP_CONNECTION, conn);
-            this.handler.connected(conn, attachment);
+
+            int timeout = HttpConnectionParams.getSoTimeout(this.params);
+    		conn.setSocketTimeout(timeout);
+
+    		this.handler.connected(conn, attachment);
     	} catch (RuntimeException ex) {
     		session.shutdown();
     		throw ex;

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=1157060&r1=1157059&r2=1157060&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 Fri Aug 12 11:59:30 2011
@@ -37,6 +37,7 @@ import org.apache.http.nio.reactor.IOEve
 import org.apache.http.nio.reactor.IOSession;
 import org.apache.http.nio.util.ByteBufferAllocator;
 import org.apache.http.nio.util.HeapByteBufferAllocator;
+import org.apache.http.params.HttpConnectionParams;
 import org.apache.http.params.HttpParams;
 import org.apache.http.protocol.ExecutionContext;
 
@@ -48,6 +49,7 @@ import org.apache.http.protocol.Executio
  * 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>
@@ -122,7 +124,7 @@ public class DefaultServerIOEventDispatc
      * @return newly created HTTP connection.
      */
     protected NHttpServerIOTarget createConnection(final IOSession session) {
-        return new DefaultNHttpServerConnection(
+		return new DefaultNHttpServerConnection(
                 session,
                 createHttpRequestFactory(),
                 this.allocator,
@@ -133,7 +135,11 @@ public class DefaultServerIOEventDispatc
     	try {
             NHttpServerIOTarget conn = createConnection(session);
             session.setAttribute(ExecutionContext.HTTP_CONNECTION, conn);
-            this.handler.connected(conn);
+
+            int timeout = HttpConnectionParams.getSoTimeout(this.params);
+    		session.setSocketTimeout(timeout);
+
+    		this.handler.connected(conn);
     	} catch (RuntimeException ex) {
     		session.shutdown();
     		throw ex;

Modified: httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/impl/nio/pool/BasicNIOConnPool.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/impl/nio/pool/BasicNIOConnPool.java?rev=1157060&r1=1157059&r2=1157060&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/impl/nio/pool/BasicNIOConnPool.java (original)
+++ httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/impl/nio/pool/BasicNIOConnPool.java Fri Aug 12 11:59:30 2011
@@ -28,21 +28,43 @@ package org.apache.http.impl.nio.pool;
 
 import java.net.InetSocketAddress;
 import java.net.SocketAddress;
+import java.util.concurrent.Future;
+import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicLong;
 
 import org.apache.http.HttpHost;
 import org.apache.http.annotation.ThreadSafe;
+import org.apache.http.concurrent.FutureCallback;
 import org.apache.http.nio.pool.AbstractNIOConnPool;
 import org.apache.http.nio.reactor.ConnectingIOReactor;
 import org.apache.http.nio.reactor.IOSession;
+import org.apache.http.params.HttpConnectionParams;
+import org.apache.http.params.HttpParams;
 
+/**
+ * Basic non-blocking {@link IOSession} pool.
+ * <p>
+ * The following parameters can be used to customize the behavior of this
+ * class:
+ * <ul>
+ *  <li>{@link org.apache.http.params.CoreConnectionPNames#CONNECTION_TIMEOUT}</li>
+ * </ul>
+ *
+ * @since 4.2
+ */
 @ThreadSafe
 public class BasicNIOConnPool extends AbstractNIOConnPool<HttpHost, IOSession, BasicNIOPoolEntry> {
 
     private static AtomicLong COUNTER = new AtomicLong();
 
-    public BasicNIOConnPool(final ConnectingIOReactor ioreactor) {
+    private final HttpParams params;
+
+    public BasicNIOConnPool(final ConnectingIOReactor ioreactor, final HttpParams params) {
         super(ioreactor, 2, 20);
+        if (params == null) {
+        	throw new IllegalArgumentException("HTTP parameters may not be null");
+        }
+        this.params = params;
     }
 
     @Override
@@ -71,4 +93,19 @@ public class BasicNIOConnPool extends Ab
         iosession.shutdown();
     }
 
+	@Override
+	public Future<BasicNIOPoolEntry> lease(
+			final HttpHost route,
+			final Object state,
+			final FutureCallback<BasicNIOPoolEntry> callback) {
+		int connectTimeout = HttpConnectionParams.getConnectionTimeout(this.params);
+		return super.lease(route, state, connectTimeout, TimeUnit.MILLISECONDS, callback);
+	}
+
+	@Override
+	public Future<BasicNIOPoolEntry> lease(final HttpHost route, final Object state) {
+		int connectTimeout = HttpConnectionParams.getConnectionTimeout(this.params);
+		return super.lease(route, state, connectTimeout, TimeUnit.MILLISECONDS, null);
+	}
+
 }

Modified: httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/impl/nio/pool/BasicNIOPoolEntry.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/impl/nio/pool/BasicNIOPoolEntry.java?rev=1157060&r1=1157059&r2=1157060&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/impl/nio/pool/BasicNIOPoolEntry.java (original)
+++ httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/impl/nio/pool/BasicNIOPoolEntry.java Fri Aug 12 11:59:30 2011
@@ -31,6 +31,11 @@ import org.apache.http.annotation.Thread
 import org.apache.http.nio.reactor.IOSession;
 import org.apache.http.pool.PoolEntry;
 
+/**
+ * Pool entry for {@link BasicNIOConnPool}.
+ *
+ * @since 4.2
+ */
 @ThreadSafe
 public class BasicNIOPoolEntry extends PoolEntry<HttpHost, IOSession> {
 

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=1157060&r1=1157059&r2=1157060&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 Fri Aug 12 11:59:30 2011
@@ -46,6 +46,7 @@ import org.apache.http.nio.reactor.IOEve
 import org.apache.http.nio.reactor.IOSession;
 import org.apache.http.nio.util.ByteBufferAllocator;
 import org.apache.http.nio.util.HeapByteBufferAllocator;
+import org.apache.http.params.HttpConnectionParams;
 import org.apache.http.params.HttpParams;
 import org.apache.http.protocol.ExecutionContext;
 
@@ -57,6 +58,7 @@ import org.apache.http.protocol.Executio
  * 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>
@@ -200,7 +202,10 @@ public class SSLClientIOEventDispatch im
             session.setAttribute(ExecutionContext.HTTP_CONNECTION, conn);
             session.setAttribute(SSL_SESSION, sslSession);
 
-            Object attachment = session.getAttribute(IOSession.ATTACHMENT_KEY);
+    		int timeout = HttpConnectionParams.getSoTimeout(this.params);
+    		conn.setSocketTimeout(timeout);
+
+    		Object attachment = session.getAttribute(IOSession.ATTACHMENT_KEY);
             this.handler.connected(conn, attachment);
 
             try {

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=1157060&r1=1157059&r2=1157060&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 Fri Aug 12 11:59:30 2011
@@ -46,6 +46,7 @@ import org.apache.http.nio.reactor.IOEve
 import org.apache.http.nio.reactor.IOSession;
 import org.apache.http.nio.util.ByteBufferAllocator;
 import org.apache.http.nio.util.HeapByteBufferAllocator;
+import org.apache.http.params.HttpConnectionParams;
 import org.apache.http.params.HttpParams;
 import org.apache.http.protocol.ExecutionContext;
 
@@ -57,6 +58,7 @@ import org.apache.http.protocol.Executio
  * 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>
@@ -200,6 +202,9 @@ public class SSLServerIOEventDispatch im
             session.setAttribute(ExecutionContext.HTTP_CONNECTION, conn);
             session.setAttribute(SSL_SESSION, sslSession);
 
+            int timeout = HttpConnectionParams.getSoTimeout(this.params);
+    		conn.setSocketTimeout(timeout);
+
             this.handler.connected(conn);
 
             try {

Modified: httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/pool/AbstractNIOConnPool.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/pool/AbstractNIOConnPool.java?rev=1157060&r1=1157059&r2=1157060&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/pool/AbstractNIOConnPool.java (original)
+++ httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/pool/AbstractNIOConnPool.java Fri Aug 12 11:59:30 2011
@@ -51,6 +51,15 @@ import org.apache.http.pool.ConnPoolCont
 import org.apache.http.pool.PoolEntry;
 import org.apache.http.pool.PoolStats;
 
+/**
+ * Abstract non-blocking connection pool.
+ *
+ * @param <T> route
+ * @param <C> connection object
+ * @param <E> pool entry
+ *
+ * @since 4.2
+ */
 @ThreadSafe
 public abstract class AbstractNIOConnPool<T, C, E extends PoolEntry<T, C>> implements ConnPoolControl<T> {
 

Modified: httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/impl/nio/pool/TestBasicNIOConnPool.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/impl/nio/pool/TestBasicNIOConnPool.java?rev=1157060&r1=1157059&r2=1157060&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/impl/nio/pool/TestBasicNIOConnPool.java (original)
+++ httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/impl/nio/pool/TestBasicNIOConnPool.java Fri Aug 12 11:59:30 2011
@@ -30,6 +30,7 @@ package org.apache.http.impl.nio.pool;
 import org.apache.http.HttpHost;
 import org.apache.http.nio.reactor.ConnectingIOReactor;
 import org.apache.http.nio.reactor.IOSession;
+import org.apache.http.params.BasicHttpParams;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -49,7 +50,7 @@ public class TestBasicNIOConnPool {
 
         route = new HttpHost("localhost", 80, "http");
 
-        pool = new BasicNIOConnPool(reactor);
+        pool = new BasicNIOConnPool(reactor, new BasicHttpParams());
     }
 
     @After
@@ -58,7 +59,12 @@ public class TestBasicNIOConnPool {
 
     @Test(expected=IllegalArgumentException.class)
     public void testNullConstructor() throws Exception {
-        pool = new BasicNIOConnPool(null);
+        pool = new BasicNIOConnPool(null, new BasicHttpParams());
+    }
+
+    @Test(expected=IllegalArgumentException.class)
+    public void testNullConstructor2() throws Exception {
+        pool = new BasicNIOConnPool(reactor, null);
     }
 
     @Test

Modified: httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/pool/AbstractConnPool.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/pool/AbstractConnPool.java?rev=1157060&r1=1157059&r2=1157060&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/pool/AbstractConnPool.java (original)
+++ httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/pool/AbstractConnPool.java Fri Aug 12 11:59:30 2011
@@ -42,6 +42,15 @@ import java.util.concurrent.locks.Reentr
 
 import org.apache.http.annotation.ThreadSafe;
 
+/**
+ * Abstract blocking connection pool.
+ *
+ * @param <T> route
+ * @param <C> connection object
+ * @param <E> pool entry
+ *
+ * @since 4.2
+ */
 @ThreadSafe
 public abstract class AbstractConnPool<T, C, E extends PoolEntry<T, C>> implements ConnPoolControl<T> {
 

Modified: httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/pool/ConnPoolControl.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/pool/ConnPoolControl.java?rev=1157060&r1=1157059&r2=1157060&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/pool/ConnPoolControl.java (original)
+++ httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/pool/ConnPoolControl.java Fri Aug 12 11:59:30 2011
@@ -26,6 +26,13 @@
  */
 package org.apache.http.pool;
 
+/**
+ * Interface to control runtime properties of a connection pool such as
+ * maximum total number of connections or maximum connections per route
+ * allowed.
+ *
+ * @param <T> route
+ */
 public interface ConnPoolControl<T> {
 
     void setMaxTotal(int max);

Modified: httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/pool/PoolEntry.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/pool/PoolEntry.java?rev=1157060&r1=1157059&r2=1157060&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/pool/PoolEntry.java (original)
+++ httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/pool/PoolEntry.java Fri Aug 12 11:59:30 2011
@@ -30,6 +30,14 @@ import java.util.concurrent.TimeUnit;
 
 import org.apache.http.annotation.ThreadSafe;
 
+/**
+ * Pool entry containing a connection object along with its route information.
+ *
+ * @param <T> route
+ * @param <C> connection
+ *
+ * @since 4.2
+ */
 @ThreadSafe
 public class PoolEntry<T, C> {
 

Modified: httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/pool/PoolStats.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/pool/PoolStats.java?rev=1157060&r1=1157059&r2=1157060&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/pool/PoolStats.java (original)
+++ httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/pool/PoolStats.java Fri Aug 12 11:59:30 2011
@@ -28,6 +28,12 @@ package org.apache.http.pool;
 
 import org.apache.http.annotation.Immutable;
 
+/**
+ * Pool statistics.
+ *
+ * @since 4.2
+ *
+ */
 @Immutable
 public class PoolStats {