Package org.apache.tomcat.jdbc.pool
Class ProxyConnection
- java.lang.Object
-
- org.apache.tomcat.jdbc.pool.JdbcInterceptor
-
- org.apache.tomcat.jdbc.pool.ProxyConnection
-
- All Implemented Interfaces:
java.lang.reflect.InvocationHandler
public class ProxyConnection extends JdbcInterceptor
A ProxyConnection object is the bottom most interceptor that wraps an object of typePooledConnection. The ProxyConnection intercepts three methods:Connection.close()- returns the connection to the pool. May be called multiple times.Object.toString()- returns a custom string for this objectPooledConnection.getConnection()- returns the underlying connection
PoolConfiguration.setUseEquals(boolean)has been called with atrueargument.
-
-
Field Summary
Fields Modifier and Type Field Description protected PooledConnectionconnectionThe underlying pooled connection.protected ConnectionPoolpoolThe parent connection pool.-
Fields inherited from class org.apache.tomcat.jdbc.pool.JdbcInterceptor
CLOSE_VAL, EQUALS_VAL, GETCONNECTION_VAL, HASHCODE_VAL, ISCLOSED_VAL, ISVALID_VAL, ISWRAPPERFOR_VAL, properties, TOSTRING_VAL, UNWRAP_VAL
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedProxyConnection(ConnectionPool parent, PooledConnection con, boolean useEquals)Creates a new ProxyConnection wrapping the given pooled connection.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description PooledConnectiongetConnection()Returns the underlying pooled connection.PooledConnectiongetDelegateConnection()Returns the delegate pooled connection.ConnectionPoolgetParentPool()Returns the parent connection pool.ConnectionPoolgetPool()Returns the parent connection pool.java.lang.Objectinvoke(java.lang.Object proxy, java.lang.reflect.Method method, java.lang.Object[] args)Gets invoked each time an operation onConnectionis invoked.booleanisClosed()Returns true if the underlying connection has been closed or discarded.booleanisWrapperFor(java.lang.Class<?> iface)Checks whether this proxy wraps the given interface.voidreset(ConnectionPool parent, PooledConnection con)Gets called each time the connection is borrowed from the pool This means that if an interceptor holds a reference to the connection the interceptor can be reused for another connection.voidsetConnection(PooledConnection connection)Sets the underlying pooled connection.voidsetPool(ConnectionPool pool)Sets the parent connection pool.java.lang.StringtoString()java.lang.Objectunwrap(java.lang.Class<?> iface)Unwraps the connection to the given interface.-
Methods inherited from class org.apache.tomcat.jdbc.pool.JdbcInterceptor
compare, compare, disconnected, getNext, getProperties, isUseEquals, poolClosed, poolStarted, setNext, setProperties, setUseEquals
-
-
-
-
Field Detail
-
connection
protected PooledConnection connection
The underlying pooled connection.
-
pool
protected ConnectionPool pool
The parent connection pool.
-
-
Constructor Detail
-
ProxyConnection
protected ProxyConnection(ConnectionPool parent, PooledConnection con, boolean useEquals)
Creates a new ProxyConnection wrapping the given pooled connection.- Parameters:
parent- the parent connection poolcon- the pooled connectionuseEquals- whether to use equals for method comparison
-
-
Method Detail
-
getConnection
public PooledConnection getConnection()
Returns the underlying pooled connection.- Returns:
- the pooled connection
-
setConnection
public void setConnection(PooledConnection connection)
Sets the underlying pooled connection.- Parameters:
connection- the pooled connection
-
getPool
public ConnectionPool getPool()
Returns the parent connection pool.- Returns:
- the connection pool
-
setPool
public void setPool(ConnectionPool pool)
Sets the parent connection pool.- Parameters:
pool- the connection pool
-
reset
public void reset(ConnectionPool parent, PooledConnection con)
Description copied from class:JdbcInterceptorGets called each time the connection is borrowed from the pool This means that if an interceptor holds a reference to the connection the interceptor can be reused for another connection.
This method may be called with null as both arguments when we are closing down the connection.- Specified by:
resetin classJdbcInterceptor- Parameters:
parent- - the connection pool owning the connectioncon- - the pooled connection
-
isWrapperFor
public boolean isWrapperFor(java.lang.Class<?> iface)
Checks whether this proxy wraps the given interface.- Parameters:
iface- the interface to check- Returns:
- true if this proxy wraps the given interface
-
unwrap
public java.lang.Object unwrap(java.lang.Class<?> iface) throws java.sql.SQLExceptionUnwraps the connection to the given interface.- Parameters:
iface- the interface to unwrap to- Returns:
- the unwrapped connection
- Throws:
java.sql.SQLException- if the connection does not wrap the given interface
-
invoke
public java.lang.Object invoke(java.lang.Object proxy, java.lang.reflect.Method method, java.lang.Object[] args) throws java.lang.ThrowableDescription copied from class:JdbcInterceptorGets invoked each time an operation onConnectionis invoked.- Specified by:
invokein interfacejava.lang.reflect.InvocationHandler- Overrides:
invokein classJdbcInterceptor- Throws:
java.lang.Throwable
-
isClosed
public boolean isClosed()
Returns true if the underlying connection has been closed or discarded.- Returns:
- true if closed or discarded
-
getDelegateConnection
public PooledConnection getDelegateConnection()
Returns the delegate pooled connection.- Returns:
- the delegate pooled connection
-
getParentPool
public ConnectionPool getParentPool()
Returns the parent connection pool.- Returns:
- the parent connection pool
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
-