You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by fh...@apache.org on 2008/12/22 23:11:41 UTC
svn commit: r728806 - in /tomcat/trunk/modules/jdbc-pool: ./
java/org/apache/tomcat/jdbc/pool/ test/org/apache/tomcat/jdbc/test/
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-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org