org.hibernate.jdbc
Class BorrowedConnectionProxy

java.lang.Object
  extended by org.hibernate.jdbc.BorrowedConnectionProxy
All Implemented Interfaces:
InvocationHandler

public class BorrowedConnectionProxy
extends Object
implements InvocationHandler

A proxy for borrowed connections which funnels all requests back into the ConnectionManager from which it was borrowed to be properly handled (in terms of connection release modes).

Note: the term borrowed here refers to connection references obtained via Session.connection() for application usage.

Author:
Steve Ebersole

Constructor Summary
BorrowedConnectionProxy(ConnectionManager connectionManager)
           
 
Method Summary
static Connection generateProxy(ConnectionManager connectionManager)
          Generates a Connection proxy wrapping the connection managed by the passed connection manager.
static ClassLoader getProxyClassLoader()
          Determines the appropriate class loader to which the generated proxy should be scoped.
static Connection getWrappedConnection(Connection connection)
          Convience method for unwrapping a connection proxy and getting a handle to an underlying connection.
 Object invoke(Object proxy, Method method, Object[] args)
          
static void renderUnuseable(Connection connection)
          Marks a borrowed connection as no longer usable.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

BorrowedConnectionProxy

public BorrowedConnectionProxy(ConnectionManager connectionManager)
Method Detail

invoke

public Object invoke(Object proxy,
                     Method method,
                     Object[] args)
              throws Throwable

Specified by:
invoke in interface InvocationHandler
Throws:
Throwable

generateProxy

public static Connection generateProxy(ConnectionManager connectionManager)
Generates a Connection proxy wrapping the connection managed by the passed connection manager.

Parameters:
connectionManager - The connection manager to wrap with the connection proxy.
Returns:
The generated proxy.

renderUnuseable

public static void renderUnuseable(Connection connection)
Marks a borrowed connection as no longer usable.

Parameters:
connection - The connection (proxy) to be marked.

getWrappedConnection

public static Connection getWrappedConnection(Connection connection)
Convience method for unwrapping a connection proxy and getting a handle to an underlying connection.

Parameters:
connection - The connection (proxy) to be unwrapped.
Returns:
The unwrapped connection.

getProxyClassLoader

public static ClassLoader getProxyClassLoader()
Determines the appropriate class loader to which the generated proxy should be scoped.

Returns:
The class loader appropriate for proxy construction.