org.apache.http.impl.conn.tsccm
Class ConnPoolByRoute

java.lang.Object
  extended by org.apache.http.impl.conn.tsccm.AbstractConnPool
      extended by 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:

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
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
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, HttpParams params)
          Deprecated. (4.1) use ConnPoolByRoute(ClientConnectionOperator, ConnPerRoute, int)
 
Method Summary
 void closeExpiredConnections()
          Deprecated.  
 void closeIdleConnections(long idletime, TimeUnit tunit)
          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 tunit, 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,
                                  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 tunit,
                                          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
tunit - 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 tunit)
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
tunit - 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–2018 The Apache Software Foundation. All rights reserved.