svn commit: r1302948 - in /tomcat/trunk/modules/jdbc-pool/src: main/java/org/apache/tomcat/jdbc/pool/ main/java/org/apache/tomcat/jdbc/pool/jmx/ test/java/org/apache/tomcat/jdbc/test/

2012-03-20 Thread fhanik
Author: fhanik
Date: Tue Mar 20 15:45:19 2012
New Revision: 1302948

URL: http://svn.apache.org/viewvc?rev=1302948view=rev
Log:
https://issues.apache.org/bugzilla/show_bug.cgi?id=52002 add in ability to 
configure pool so that connections can not be reused

Added:

tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/DisposableConnectionFacade.java

tomcat/trunk/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/test/MultipleCloseTest.java
Modified:

tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/ConnectionPool.java

tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/DataSourceProxy.java

tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/JdbcInterceptor.java

tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/PoolConfiguration.java

tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/PoolProperties.java

tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/jmx/ConnectionPool.java

Modified: 
tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/ConnectionPool.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/ConnectionPool.java?rev=1302948r1=1302947r2=1302948view=diff
==
--- 
tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/ConnectionPool.java
 (original)
+++ 
tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/ConnectionPool.java
 Tue Mar 20 15:45:19 2012
@@ -312,7 +312,12 @@ public class ConnectionPool {
 getProxyConstructor(con.getXAConnection() != null);
 //create the proxy
 //TODO possible optimization, keep track if this connection was 
returned properly, and don't generate a new facade
-Connection connection = 
(Connection)proxyClassConstructor.newInstance(new Object[] { handler });
+Connection connection = null;
+if (getPoolProperties().getUseDisposableConnectionFacade() ) {
+connection = (Connection)proxyClassConstructor.newInstance(new 
Object[] { new DisposableConnectionFacade(handler) });
+} else {
+connection = (Connection)proxyClassConstructor.newInstance(new 
Object[] {handler});
+}
 //return the connection
 return connection;
 }catch (Exception x) {

Modified: 
tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/DataSourceProxy.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/DataSourceProxy.java?rev=1302948r1=1302947r2=1302948view=diff
==
--- 
tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/DataSourceProxy.java
 (original)
+++ 
tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/DataSourceProxy.java
 Tue Mar 20 15:45:19 2012
@@ -1226,4 +1226,20 @@ public class DataSourceProxy implements 
 return getPoolProperties().getRollbackOnReturn();
 }
 
+/**
+ * {@inheritDoc}
+ */
+@Override
+public void setUseDisposableConnectionFacade(boolean 
useDisposableConnectionFacade) {
+
getPoolProperties().setUseDisposableConnectionFacade(useDisposableConnectionFacade);
+}
+
+/**
+ * {@inheritDoc}
+ */
+@Override
+public boolean getUseDisposableConnectionFacade() {
+return getPoolProperties().getUseDisposableConnectionFacade();
+}
+
 }

Added: 
tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/DisposableConnectionFacade.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/DisposableConnectionFacade.java?rev=1302948view=auto
==
--- 
tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/DisposableConnectionFacade.java
 (added)
+++ 
tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/DisposableConnectionFacade.java
 Tue Mar 20 15:45:19 2012
@@ -0,0 +1,69 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the License); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an AS IS BASIS,
+ * WITHOUT WARRANTIES 

Re: svn commit: r1302948 - in /tomcat/trunk/modules/jdbc-pool/src: main/java/org/apache/tomcat/jdbc/pool/ main/java/org/apache/tomcat/jdbc/pool/jmx/ test/java/org/apache/tomcat/jdbc/test/

2012-03-20 Thread Konstantin Kolinko
2012/3/20  fha...@apache.org:
 Author: fhanik
 Date: Tue Mar 20 15:45:19 2012
 New Revision: 1302948

 URL: http://svn.apache.org/viewvc?rev=1302948view=rev
 Log:
 https://issues.apache.org/bugzilla/show_bug.cgi?id=52002 add in ability to 
 configure pool so that connections can not be reused

 Added:
    
 tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/DisposableConnectionFacade.java
    
 tomcat/trunk/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/test/MultipleCloseTest.java
 Modified:
    
 tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/ConnectionPool.java
    
 tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/DataSourceProxy.java
    
 tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/JdbcInterceptor.java
    
 tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/PoolConfiguration.java
    
 tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/PoolProperties.java
    
 tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/jmx/ConnectionPool.java

(...)

 --- 
 tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/PoolProperties.java
  (original)
 +++ 
 tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/PoolProperties.java
  Tue Mar 20 15:45:19 2012
 @@ -86,6 +86,7 @@ public class PoolProperties implements P
     protected boolean alternateUsernameAllowed = false;
     protected boolean commitOnReturn = false;
     protected boolean rollbackOnReturn = false;
 +    protected boolean useDisposableConnectionFacade;


     /**
 @@ -1194,4 +1195,29 @@ public class PoolProperties implements P
     public boolean getRollbackOnReturn() {
         return this.rollbackOnReturn;
     }
 +
 +    /**
 +     * {@inheritDoc}
 +     */
 +    @Override
 +    public void setUseDisposableConnectionFacade(boolean 
 useDisposableConnectionFacade) {
 +        this.useDisposableConnectionFacade = useDisposableConnectionFacade;
 +    }
 +
 +    /**
 +     * {@inheritDoc}
 +     */
 +    @Override
 +    public boolean getUseDisposableConnectionFacade() {
 +        return useDisposableConnectionFacade;
 +    }
 +
 +    @Override
 +    protected Object clone() throws CloneNotSupportedException {
 +        // TODO Auto-generated method stub
 +        return super.clone();
 +    }

There is no need in the above clone() method.
It has the same access level (protected) as super one.

I see that PoolProperties is written as implements Cloneable. In
such case the clone method is usually redeclared as public one.

 +
 +
 +
  }


Best regards,
Konstantin Kolinko

-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



RE: svn commit: r1302948 - in /tomcat/trunk/modules/jdbc-pool/src: main/java/org/apache/tomcat/jdbc/pool/ main/java/org/apache/tomcat/jdbc/pool/jmx/ test/java/org/apache/tomcat/jdbc/test/

2012-03-20 Thread Filip Hanik (mailing lists)


 -Original Message-
 
 There is no need in the above clone() method.
 It has the same access level (protected) as super one.
 
 I see that PoolProperties is written as implements Cloneable. In
 such case the clone method is usually redeclared as public one.
[Filip Hanik] 

No, implements Cloneable , just means that the JVM wont throw an exception
if you try to call the method and it is not implemented. It lets the JVM do
the cloning for you
The IDE added in the method, and I don't see how it hurts





-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org