Package 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 public class ConnPoolByRoute extends AbstractConnPool
Deprecated.(4.2) useAbstractConnPoolA connection pool that maintains connections by route. This class is derived fromMultiThreadedHttpConnectionManagerin 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
poolLockin the base class, not viasynchronizedmethods.- Since:
- 4.0
-
-
Field Summary
Fields Modifier and Type Field Description protected ConnPerRouteconnPerRouteDeprecated.Connections per route lookupprotected java.util.Queue<BasicPoolEntry>freeConnectionsDeprecated.The list of free connectionsprotected java.util.Set<BasicPoolEntry>leasedConnectionsDeprecated.References to issued connectionsprotected intmaxTotalConnectionsDeprecated.protected intnumConnectionsDeprecated.protected ClientConnectionOperatoroperatorDeprecated.Connection operator for this poolprotected java.util.Map<HttpRoute,RouteSpecificPool>routeToPoolDeprecated.Map of route-specific poolsprotected booleanshutdownDeprecated.protected java.util.Queue<WaitingThread>waitingThreadsDeprecated.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 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, java.util.concurrent.TimeUnit connTTLTimeUnit)Deprecated.ConnPoolByRoute(ClientConnectionOperator operator, org.apache.http.params.HttpParams params)Deprecated.
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description voidcloseExpiredConnections()Deprecated.voidcloseIdleConnections(long idletime, java.util.concurrent.TimeUnit timeUnit)Deprecated.Closes idle connections.protected BasicPoolEntrycreateEntry(RouteSpecificPool rospl, ClientConnectionOperator op)Deprecated.Creates a new pool entry.protected java.util.Queue<BasicPoolEntry>createFreeConnQueue()Deprecated.Creates the queue forfreeConnections.protected java.util.Map<HttpRoute,RouteSpecificPool>createRouteToPoolMap()Deprecated.Creates the map forrouteToPool.protected java.util.Queue<WaitingThread>createWaitingThreadQueue()Deprecated.Creates the queue forwaitingThreads.voiddeleteClosedConnections()Deprecated.Deletes all entries for closed connections.protected voiddeleteEntry(BasicPoolEntry entry)Deprecated.Deletes a given pool entry.protected voiddeleteLeastUsedEntry()Deprecated.Delete an old, free pool entry to make room for a new one.voidfreeEntry(BasicPoolEntry entry, boolean reusable, long validDuration, java.util.concurrent.TimeUnit timeUnit)Deprecated.Returns an entry into the pool.intgetConnectionsInPool()Deprecated.intgetConnectionsInPool(HttpRoute route)Deprecated.protected BasicPoolEntrygetEntryBlocking(HttpRoute route, java.lang.Object state, long timeout, java.util.concurrent.TimeUnit timeUnit, WaitingThreadAborter aborter)Deprecated.Obtains a pool entry with a connection within the given timeout.protected BasicPoolEntrygetFreeEntry(RouteSpecificPool rospl, java.lang.Object state)Deprecated.If available, get a free pool entry for a route.protected java.util.concurrent.locks.LockgetLock()Deprecated.intgetMaxTotalConnections()Deprecated.since 4.1protected RouteSpecificPoolgetRoutePool(HttpRoute route, boolean create)Deprecated.Get a route-specific pool of available connections.protected voidhandleLostEntry(HttpRoute route)Deprecated.protected RouteSpecificPoolnewRouteSpecificPool(HttpRoute route)Deprecated.Creates a new route-specific pool.protected WaitingThreadnewWaitingThread(java.util.concurrent.locks.Condition cond, RouteSpecificPool rospl)Deprecated.Creates a new waiting thread.protected voidnotifyWaitingThread(RouteSpecificPool rospl)Deprecated.Notifies a waiting thread that a connection is available.PoolEntryRequestrequestPoolEntry(HttpRoute route, java.lang.Object state)Deprecated.Returns a newPoolEntryRequest, from which aBasicPoolEntrycan be obtained, or the request can be aborted.voidsetMaxTotalConnections(int max)Deprecated.since 4.1voidshutdown()Deprecated.Shuts down this pool and all associated resources.-
Methods inherited from class org.apache.http.impl.conn.tsccm.AbstractConnPool
closeConnection, enableConnectionGC, getEntry, handleReference
-
-
-
-
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 java.util.Set<BasicPoolEntry> leasedConnections
Deprecated.References to issued connections
-
freeConnections
protected final java.util.Queue<BasicPoolEntry> freeConnections
Deprecated.The list of free connections
-
waitingThreads
protected final java.util.Queue<WaitingThread> waitingThreads
Deprecated.The list of WaitingThreads waiting for a connection
-
routeToPool
protected final java.util.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, java.util.concurrent.TimeUnit connTTLTimeUnit)
Deprecated.- Since:
- 4.1
-
ConnPoolByRoute
@Deprecated public ConnPoolByRoute(ClientConnectionOperator operator, org.apache.http.params.HttpParams params)
Deprecated.Creates a new connection pool, managed by route.
-
-
Method Detail
-
getLock
protected java.util.concurrent.locks.Lock getLock()
Deprecated.
-
createFreeConnQueue
protected java.util.Queue<BasicPoolEntry> createFreeConnQueue()
Deprecated.Creates the queue forfreeConnections. Called once by the constructor.- Returns:
- a queue
-
createWaitingThreadQueue
protected java.util.Queue<WaitingThread> createWaitingThreadQueue()
Deprecated.Creates the queue forwaitingThreads. Called once by the constructor.- Returns:
- a queue
-
createRouteToPoolMap
protected java.util.Map<HttpRoute,RouteSpecificPool> createRouteToPoolMap()
Deprecated.Creates the map forrouteToPool. Called once by the constructor.- Returns:
- a map
-
newRouteSpecificPool
protected RouteSpecificPool newRouteSpecificPool(HttpRoute route)
Deprecated.Creates a new route-specific pool. Called bygetRoutePool(org.apache.http.conn.routing.HttpRoute, boolean)when necessary.- Parameters:
route- the route- Returns:
- the new pool
-
newWaitingThread
protected WaitingThread newWaitingThread(java.util.concurrent.locks.Condition cond, RouteSpecificPool rospl)
Deprecated.Creates a new waiting thread. Called bygetRoutePool(org.apache.http.conn.routing.HttpRoute, boolean)when necessary.- Parameters:
cond- the condition to wait forrospl- the route specific pool, ornull- 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 routecreate- whether to create the pool if it doesn't exist- Returns:
- the pool for the argument route,
never
nullifcreateistrue
-
getConnectionsInPool
public int getConnectionsInPool(HttpRoute route)
Deprecated.
-
getConnectionsInPool
public int getConnectionsInPool()
Deprecated.
-
requestPoolEntry
public PoolEntryRequest requestPoolEntry(HttpRoute route, java.lang.Object state)
Deprecated.Description copied from class:AbstractConnPoolReturns a newPoolEntryRequest, from which aBasicPoolEntrycan be obtained, or the request can be aborted.- Specified by:
requestPoolEntryin classAbstractConnPool- Parameters:
route- the routestate- the state- Returns:
- the entry request
-
getEntryBlocking
protected BasicPoolEntry getEntryBlocking(HttpRoute route, java.lang.Object state, long timeout, java.util.concurrent.TimeUnit timeUnit, WaitingThreadAborter aborter) throws ConnectionPoolTimeoutException, java.lang.InterruptedException
Deprecated.Obtains a pool entry with a connection within the given timeout. If aWaitingThreadis 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 connectiontimeout- the timeout, 0 or negative for no timeouttimeUnit- the unit for thetimeout, may benullonly if there is no timeoutaborter- an object which can abort aWaitingThread.- Returns:
- pool entry holding a connection for the route
- Throws:
ConnectionPoolTimeoutException- if the timeout expiredjava.lang.InterruptedException- if the calling thread was interrupted
-
freeEntry
public void freeEntry(BasicPoolEntry entry, boolean reusable, long validDuration, java.util.concurrent.TimeUnit timeUnit)
Deprecated.Description copied from class:AbstractConnPoolReturns 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:
freeEntryin classAbstractConnPool- Parameters:
entry- the entry for the connection to releasereusable-trueif the entry is deemed reusable,falseotherwise.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, java.lang.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
nullif 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 entryop- 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:
handleLostEntryin classAbstractConnPool
-
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, ornull
-
deleteClosedConnections
public void deleteClosedConnections()
Deprecated.Description copied from class:AbstractConnPoolDeletes all entries for closed connections.- Specified by:
deleteClosedConnectionsin classAbstractConnPool
-
closeIdleConnections
public void closeIdleConnections(long idletime, java.util.concurrent.TimeUnit timeUnit)Deprecated.Closes idle connections.- Overrides:
closeIdleConnectionsin classAbstractConnPool- Parameters:
idletime- the time the connections should have been idle in order to be closed nowtimeUnit- the unit for theidletime
-
closeExpiredConnections
public void closeExpiredConnections()
Deprecated.- Overrides:
closeExpiredConnectionsin classAbstractConnPool
-
shutdown
public void shutdown()
Deprecated.Description copied from class:AbstractConnPoolShuts down this pool and all associated resources. Overriding methods MUST call the implementation here!- Overrides:
shutdownin classAbstractConnPool
-
setMaxTotalConnections
public void setMaxTotalConnections(int max)
Deprecated.since 4.1
-
getMaxTotalConnections
public int getMaxTotalConnections()
Deprecated.since 4.1
-
-