org.apache.http.impl.conn.tsccm

## Class ConnPoolByRoute

- java.lang.Object
- - org.apache.http.impl.conn.tsccm.AbstractConnPool
  - - org.apache.http.impl.conn.tsccm.ConnPoolByRoute

- Deprecated.
  (4.2) use `AbstractConnPool`

      @Deprecated
      public class ConnPoolByRoute
      extends AbstractConnPool

  A connection pool that maintains connections by route. This class is derived from `MultiThreadedHttpConnectionManager` in HttpClient 3.x, see there for original authors. It implements the same algorithm for connection re-use and connection-per-host enforcement:
  - connections are re-used only for the exact same route
  - connection limits are enforced per route rather than per host
  Note that access to the pool data structures is synchronized via the `poolLock` in the base class, not via `synchronized` methods.
  Since:
    4.0

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected ConnPerRoute` | `connPerRoute` Deprecated. Connections per route lookup
    `protected Queue<BasicPoolEntry>` | `freeConnections` Deprecated. The list of free connections
    `protected Set<BasicPoolEntry>` | `leasedConnections` Deprecated. References to issued connections
    `protected int` | `maxTotalConnections` Deprecated.
    `protected int` | `numConnections` Deprecated.
    `protected ClientConnectionOperator` | `operator` Deprecated. Connection operator for this pool
    `protected Map<HttpRoute,RouteSpecificPool>` | `routeToPool` Deprecated. Map of route-specific pools
    `protected boolean` | `shutdown` Deprecated.
    `protected Queue<WaitingThread>` | `waitingThreads` Deprecated. The list of WaitingThreads waiting for a connection

    - ### Fields inherited from class org.apache.http.impl.conn.tsccm.AbstractConnPool

      `idleConnHandler, isShutDown, issuedConnections, refQueue`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `ConnPoolByRoute(ClientConnectionOperator operator, ConnPerRoute connPerRoute, int maxTotalConnections)` Deprecated. Creates a new connection pool, managed by route.
    `ConnPoolByRoute(ClientConnectionOperator operator, ConnPerRoute connPerRoute, int maxTotalConnections, long connTTL, TimeUnit connTTLTimeUnit)` Deprecated.
    `ConnPoolByRoute(ClientConnectionOperator operator, org.apache.http.params.HttpParams params)` Deprecated. (4.1) use `ConnPoolByRoute(ClientConnectionOperator, ConnPerRoute, int)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `closeExpiredConnections()` Deprecated.
    `void` | `closeIdleConnections(long idletime, TimeUnit timeUnit)` Deprecated. Closes idle connections.
    `protected BasicPoolEntry` | `createEntry(RouteSpecificPool rospl, ClientConnectionOperator op)` Deprecated. Creates a new pool entry.
    `protected Queue<BasicPoolEntry>` | `createFreeConnQueue()` Deprecated. Creates the queue for `freeConnections`.
    `protected Map<HttpRoute,RouteSpecificPool>` | `createRouteToPoolMap()` Deprecated. Creates the map for `routeToPool`.
    `protected Queue<WaitingThread>` | `createWaitingThreadQueue()` Deprecated. Creates the queue for `waitingThreads`.
    `void` | `deleteClosedConnections()` Deprecated. Deletes all entries for closed connections.
    `protected void` | `deleteEntry(BasicPoolEntry entry)` Deprecated. Deletes a given pool entry.
    `protected void` | `deleteLeastUsedEntry()` Deprecated. Delete an old, free pool entry to make room for a new one.
    `void` | `freeEntry(BasicPoolEntry entry, boolean reusable, long validDuration, TimeUnit timeUnit)` Deprecated. Returns an entry into the pool.
    `int` | `getConnectionsInPool()` Deprecated.
    `int` | `getConnectionsInPool(HttpRoute route)` Deprecated.
    `protected BasicPoolEntry` | `getEntryBlocking(HttpRoute route, Object state, long timeout, TimeUnit timeUnit, WaitingThreadAborter aborter)` Deprecated. Obtains a pool entry with a connection within the given timeout.
    `protected BasicPoolEntry` | `getFreeEntry(RouteSpecificPool rospl, Object state)` Deprecated. If available, get a free pool entry for a route.
    `protected Lock` | `getLock()` Deprecated.
    `int` | `getMaxTotalConnections()` Deprecated. since 4.1
    `protected RouteSpecificPool` | `getRoutePool(HttpRoute route, boolean create)` Deprecated. Get a route-specific pool of available connections.
    `protected void` | `handleLostEntry(HttpRoute route)` Deprecated.
    `protected RouteSpecificPool` | `newRouteSpecificPool(HttpRoute route)` Deprecated. Creates a new route-specific pool.
    `protected WaitingThread` | `newWaitingThread(Condition cond, RouteSpecificPool rospl)` Deprecated. Creates a new waiting thread.
    `protected void` | `notifyWaitingThread(RouteSpecificPool rospl)` Deprecated. Notifies a waiting thread that a connection is available.
    `PoolEntryRequest` | `requestPoolEntry(HttpRoute route, Object state)` Deprecated. Returns a new `PoolEntryRequest`, from which a `BasicPoolEntry` can be obtained, or the request can be aborted.
    `void` | `setMaxTotalConnections(int max)` Deprecated. since 4.1
    `void` | `shutdown()` Deprecated. Shuts down this pool and all associated resources.

    - ### Methods inherited from class org.apache.http.impl.conn.tsccm.AbstractConnPool

      `closeConnection, enableConnectionGC, getEntry, handleReference`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### operator

          protected final ClientConnectionOperator operator

      Deprecated.
      Connection operator for this pool

    - #### connPerRoute

          protected final ConnPerRoute connPerRoute

      Deprecated.
      Connections per route lookup

    - #### leasedConnections

          protected final Set<BasicPoolEntry> leasedConnections

      Deprecated.
      References to issued connections

    - #### freeConnections

          protected final Queue<BasicPoolEntry> freeConnections

      Deprecated.
      The list of free connections

    - #### waitingThreads

          protected final Queue<WaitingThread> waitingThreads

      Deprecated.
      The list of WaitingThreads waiting for a connection

    - #### routeToPool

          protected final Map<HttpRoute,RouteSpecificPool> routeToPool

      Deprecated.
      Map of route-specific pools

    - #### shutdown

          protected volatile boolean shutdown

      Deprecated.

    - #### maxTotalConnections

          protected volatile int maxTotalConnections

      Deprecated.

    - #### numConnections

          protected volatile int numConnections

      Deprecated.

  - ### Constructor Detail

    - #### ConnPoolByRoute

          public ConnPoolByRoute(ClientConnectionOperator operator,
                         ConnPerRoute connPerRoute,
                         int maxTotalConnections)

      Deprecated.
      Creates a new connection pool, managed by route.
      Since:
        4.1

    - #### ConnPoolByRoute

          public ConnPoolByRoute(ClientConnectionOperator operator,
                         ConnPerRoute connPerRoute,
                         int maxTotalConnections,
                         long connTTL,
                         TimeUnit connTTLTimeUnit)

      Deprecated.
      Since:
        4.1

    - #### ConnPoolByRoute

          @Deprecated
          public ConnPoolByRoute(ClientConnectionOperator operator,
                                    org.apache.http.params.HttpParams params)

      Deprecated. (4.1) use `ConnPoolByRoute(ClientConnectionOperator, ConnPerRoute, int)`
      Creates a new connection pool, managed by route.

  - ### Method Detail

    - #### getLock

          protected Lock getLock()

      Deprecated.

    - #### createFreeConnQueue

          protected Queue<BasicPoolEntry> createFreeConnQueue()

      Deprecated.
      Creates the queue for `freeConnections`. Called once by the constructor.
      Returns:
        a queue

    - #### createWaitingThreadQueue

          protected Queue<WaitingThread> createWaitingThreadQueue()

      Deprecated.
      Creates the queue for `waitingThreads`. Called once by the constructor.
      Returns:
        a queue

    - #### createRouteToPoolMap

          protected Map<HttpRoute,RouteSpecificPool> createRouteToPoolMap()

      Deprecated.
      Creates the map for `routeToPool`. Called once by the constructor.
      Returns:
        a map

    - #### newRouteSpecificPool

          protected RouteSpecificPool newRouteSpecificPool(HttpRoute route)

      Deprecated.
      Creates a new route-specific pool. Called by `getRoutePool(org.apache.http.conn.routing.HttpRoute, boolean)` when necessary.
      Parameters:
        `route` - the route
      Returns:
        the new pool

    - #### newWaitingThread

          protected WaitingThread newWaitingThread(Condition cond,
                                       RouteSpecificPool rospl)

      Deprecated.
      Creates a new waiting thread. Called by `getRoutePool(org.apache.http.conn.routing.HttpRoute, boolean)` when necessary.
      Parameters:
        `cond` - the condition to wait for
        `rospl` - the route specific pool, or `null`
      Returns:
        a waiting thread representation

    - #### getRoutePool

          protected RouteSpecificPool getRoutePool(HttpRoute route,
                                       boolean create)

      Deprecated.
      Get a route-specific pool of available connections.
      Parameters:
        `route` - the route
        `create` - whether to create the pool if it doesn't exist
      Returns:
        the pool for the argument route, never `null` if `create` is `true`

    - #### getConnectionsInPool

          public int getConnectionsInPool(HttpRoute route)

      Deprecated.

    - #### getConnectionsInPool

          public int getConnectionsInPool()

      Deprecated.

    - #### requestPoolEntry

          public PoolEntryRequest requestPoolEntry(HttpRoute route,
                                          Object state)

      Deprecated.
      Description copied from class: `AbstractConnPool`
      Returns a new `PoolEntryRequest`, from which a `BasicPoolEntry` can be obtained, or the request can be aborted.
      Specified by:
        `requestPoolEntry` in class `AbstractConnPool`
      Parameters:
        `route` - the route
        `state` - the state
      Returns:
        the entry request

    - #### getEntryBlocking

          protected BasicPoolEntry getEntryBlocking(HttpRoute route,
                                        Object state,
                                        long timeout,
                                        TimeUnit timeUnit,
                                        WaitingThreadAborter aborter)
                                             throws ConnectionPoolTimeoutException,
                                                    InterruptedException

      Deprecated.
      Obtains a pool entry with a connection within the given timeout. If a `WaitingThread` is used to block, `WaitingThreadAborter.setWaitingThread(WaitingThread)` must be called before blocking, to allow the thread to be interrupted.
      Parameters:
        `route` - the route for which to get the connection
        `timeout` - the timeout, 0 or negative for no timeout
        `timeUnit` - the unit for the `timeout`, may be `null` only if there is no timeout
        `aborter` - an object which can abort a `WaitingThread`.
      Returns:
        pool entry holding a connection for the route
      Throws:
        `ConnectionPoolTimeoutException` - if the timeout expired
        `InterruptedException` - if the calling thread was interrupted

    - #### freeEntry

          public void freeEntry(BasicPoolEntry entry,
                       boolean reusable,
                       long validDuration,
                       TimeUnit timeUnit)

      Deprecated.
      Description copied from class: `AbstractConnPool`
      Returns an entry into the pool. The connection of the entry is expected to be in a suitable state, either open and re-usable, or closed. The pool will not make any attempt to determine whether it can be re-used or not.
      Specified by:
        `freeEntry` in class `AbstractConnPool`
      Parameters:
        `entry` - the entry for the connection to release
        `reusable` - `true` if the entry is deemed reusable, `false` otherwise.
        `validDuration` - The duration that the entry should remain free and reusable.
        `timeUnit` - The unit of time the duration is measured in.

    - #### getFreeEntry

          protected BasicPoolEntry getFreeEntry(RouteSpecificPool rospl,
                                    Object state)

      Deprecated.
      If available, get a free pool entry for a route.
      Parameters:
        `rospl` - the route-specific pool from which to get an entry
      Returns:
        an available pool entry for the given route, or `null` if none is available

    - #### createEntry

          protected BasicPoolEntry createEntry(RouteSpecificPool rospl,
                                   ClientConnectionOperator op)

      Deprecated.
      Creates a new pool entry. This method assumes that the new connection will be handed out immediately.
      Parameters:
        `rospl` - the route-specific pool for which to create the entry
        `op` - the operator for creating a connection
      Returns:
        the new pool entry for a new connection

    - #### deleteEntry

          protected void deleteEntry(BasicPoolEntry entry)

      Deprecated.
      Deletes a given pool entry. This closes the pooled connection and removes all references, so that it can be GCed.

      Note: Does not remove the entry from the freeConnections list. It is assumed that the caller has already handled this step.

      Parameters:
        `entry` - the pool entry for the connection to delete

    - #### deleteLeastUsedEntry

          protected void deleteLeastUsedEntry()

      Deprecated.
      Delete an old, free pool entry to make room for a new one. Used to replace pool entries with ones for a different route.

    - #### handleLostEntry

          protected void handleLostEntry(HttpRoute route)

      Deprecated.
      Specified by:
        `handleLostEntry` in class `AbstractConnPool`

    - #### notifyWaitingThread

          protected void notifyWaitingThread(RouteSpecificPool rospl)

      Deprecated.
      Notifies a waiting thread that a connection is available. This will wake a thread waiting in the specific route pool, if there is one. Otherwise, a thread in the connection pool will be notified.
      Parameters:
        `rospl` - the pool in which to notify, or `null`

    - #### deleteClosedConnections

          public void deleteClosedConnections()

      Deprecated.
      Description copied from class: `AbstractConnPool`
      Deletes all entries for closed connections.
      Specified by:
        `deleteClosedConnections` in class `AbstractConnPool`

    - #### closeIdleConnections

          public void closeIdleConnections(long idletime,
                                  TimeUnit timeUnit)

      Deprecated.
      Closes idle connections.
      Overrides:
        `closeIdleConnections` in class `AbstractConnPool`
      Parameters:
        `idletime` - the time the connections should have been idle in order to be closed now
        `timeUnit` - the unit for the `idletime`

    - #### closeExpiredConnections

          public void closeExpiredConnections()

      Deprecated.
      Overrides:
        `closeExpiredConnections` in class `AbstractConnPool`

    - #### shutdown

          public void shutdown()

      Deprecated.
      Description copied from class: `AbstractConnPool`
      Shuts down this pool and all associated resources. Overriding methods MUST call the implementation here!
      Overrides:
        `shutdown` in class `AbstractConnPool`

    - #### setMaxTotalConnections

          public void setMaxTotalConnections(int max)

      Deprecated.
      since 4.1

    - #### getMaxTotalConnections

          public int getMaxTotalConnections()

      Deprecated.
      since 4.1

Copyright © 1999–2022 The Apache Software Foundation. All rights reserved.