Author: fhanik Date: Mon Dec 22 14:11:41 2008 New Revision: 728806 URL: http://svn.apache.org/viewvc?rev=728806&view=rev Log: Implemented a way to get a delegate using standard APIs rather than custom handling
Added: tomcat/trunk/modules/jdbc-pool/test/org/apache/tomcat/jdbc/test/TestGetConnection.java Modified: tomcat/trunk/modules/jdbc-pool/.classpath tomcat/trunk/modules/jdbc-pool/build.xml tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/ConnectionPool.java tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/JdbcInterceptor.java tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/ProxyConnection.java Modified: tomcat/trunk/modules/jdbc-pool/.classpath URL: http://svn.apache.org/viewvc/tomcat/trunk/modules/jdbc-pool/.classpath?rev=728806&r1=728805&r2=728806&view=diff ============================================================================== --- tomcat/trunk/modules/jdbc-pool/.classpath (original) +++ tomcat/trunk/modules/jdbc-pool/.classpath Mon Dec 22 14:11:41 2008 @@ -2,10 +2,10 @@ <classpath> <classpathentry kind="src" path="java"/> <classpathentry kind="src" path="test"/> - <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/> <classpathentry combineaccessrules="false" kind="src" path="/tomcat-trunk"/> <classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/3"/> <classpathentry kind="var" path="TOMCAT_LIBS_BASE/tomcat6-deps/dbcp/tomcat-dbcp.jar"/> <classpathentry kind="lib" path="mysql-connector-java-5.1.6-bin.jar"/> + <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/> <classpathentry kind="output" path="bin"/> </classpath> Modified: tomcat/trunk/modules/jdbc-pool/build.xml URL: http://svn.apache.org/viewvc/tomcat/trunk/modules/jdbc-pool/build.xml?rev=728806&r1=728805&r2=728806&view=diff ============================================================================== --- tomcat/trunk/modules/jdbc-pool/build.xml (original) +++ tomcat/trunk/modules/jdbc-pool/build.xml Mon Dec 22 14:11:41 2008 @@ -23,7 +23,7 @@ <!-- See "build.properties.sample" in the top level directory for all --> <property name="version.major" value="1" /> <property name="version.minor" value="0" /> - <property name="version.build" value="10" /> + <property name="version.build" value="11" /> <property name="version.patch" value="-beta" /> <property name="version" value="${version.major}.${version.minor}.${version.build}${version.patch}" /> <!-- property values you must customize for successful building!!! --> Modified: tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/ConnectionPool.java URL: http://svn.apache.org/viewvc/tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/ConnectionPool.java?rev=728806&r1=728805&r2=728806&view=diff ============================================================================== --- tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/ConnectionPool.java (original) +++ tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/ConnectionPool.java Mon Dec 22 14:11:41 2008 @@ -248,7 +248,7 @@ public Constructor getProxyConstructor() throws NoSuchMethodException { //cache the constructor if (proxyClassConstructor == null ) { - Class proxyClass = Proxy.getProxyClass(ConnectionPool.class.getClassLoader(), new Class[] {java.sql.Connection.class}); + Class proxyClass = Proxy.getProxyClass(ConnectionPool.class.getClassLoader(), new Class[] {java.sql.Connection.class,javax.sql.PooledConnection.class}); proxyClassConstructor = proxyClass.getConstructor(new Class[] { InvocationHandler.class }); } return proxyClassConstructor; Modified: tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/JdbcInterceptor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/JdbcInterceptor.java?rev=728806&r1=728805&r2=728806&view=diff ============================================================================== --- tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/JdbcInterceptor.java (original) +++ tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/JdbcInterceptor.java Mon Dec 22 14:11:41 2008 @@ -29,9 +29,10 @@ * @version 1.0 */ public abstract class JdbcInterceptor implements InvocationHandler { - public static final String CLOSE_VAL = "close"; - public static final String TOSTRING_VAL = "toString"; - public static final String ISCLOSED_VAL = "isClosed"; + public static final String CLOSE_VAL = "close"; + public static final String TOSTRING_VAL = "toString"; + public static final String ISCLOSED_VAL = "isClosed"; + public static final String GETCONNECTION_VAL = "getConnection"; protected Map<String,InterceptorProperty> properties = null; Modified: tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/ProxyConnection.java URL: http://svn.apache.org/viewvc/tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/ProxyConnection.java?rev=728806&r1=728805&r2=728806&view=diff ============================================================================== --- tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/ProxyConnection.java (original) +++ tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/ProxyConnection.java Mon Dec 22 14:11:41 2008 @@ -80,6 +80,8 @@ return null; } else if (compare(TOSTRING_VAL,method)) { return this.toString(); + } else if (compare(GETCONNECTION_VAL,method) && connection!=null) { + return connection.getConnection(); } if (isClosed()) throw new SQLException("Connection has already been closed."); return method.invoke(connection.getConnection(),args); Added: tomcat/trunk/modules/jdbc-pool/test/org/apache/tomcat/jdbc/test/TestGetConnection.java URL: http://svn.apache.org/viewvc/tomcat/trunk/modules/jdbc-pool/test/org/apache/tomcat/jdbc/test/TestGetConnection.java?rev=728806&view=auto ============================================================================== --- tomcat/trunk/modules/jdbc-pool/test/org/apache/tomcat/jdbc/test/TestGetConnection.java (added) +++ tomcat/trunk/modules/jdbc-pool/test/org/apache/tomcat/jdbc/test/TestGetConnection.java Mon Dec 22 14:11:41 2008 @@ -0,0 +1,23 @@ +package org.apache.tomcat.jdbc.test; + +import java.sql.Connection; + +import javax.sql.PooledConnection; + +public class TestGetConnection extends DefaultTestCase { + + public TestGetConnection(String name) { + super(name); + } + + public void testGetConnection() throws Exception { + this.init(); + Connection con = this.datasource.getConnection(); + assertTrue("Connection should implement javax.sql.PooledConnection",con instanceof PooledConnection); + Connection actual = ((PooledConnection)con).getConnection(); + assertNotNull("Connection delegate should not be null.",actual); + System.out.println("Actual connection:"+actual.getClass().getName()); + + } + +} --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org