<!-- 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="3" />
+ <property name="version.build" value="5" />
<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!!! -->
</properties>
<body>
-<section name="Tomcat JDBC Connection Pool v1.0.4-beta">
+<section name="Tomcat JDBC Connection Pool v1.0.5-beta">
<subsection name="pool">
<changelog>
<update><rev>720253</rev>Document how to use interceptors</update>
<code>"close".equals(method.getName())</code>.
Above we see a direct reference comparison between the method name and <code>static final String</code> reference.
According to the JVM spec, method names and static final String end up in a shared constant pool, so the reference comparison should work.
+ One could of course do this as well:
+ <source>
+
+ if (compare(CLOSE_VAL,method.getName())) {
+ if (isClosed()) return null; //noop for already closed.
+ }
+ return super.invoke(proxy,method,args);
+ </source>
+ The <code>compare(String,Method)</code> will use the <code>useEquals</code> flag on an interceptor and do either reference comparison or
+ a string value comparison when the <code>useEquals=true</code> flag is set.
</p>
<p>Configuring interceptors<br/>
Interceptors are configured using the <code>jdbcInterceptors</code> property or the <code>setJdbcInterceptors</code> method.
-VERSION=v1.0.3-beta
+VERSION=v1.0.4-beta
for i in $(find output/release/$VERSION -name "*.zip" -o -name "*.tar.gz"); do
echo Signing $i
echo $1|gpg --passphrase-fd 0 -a -b $i
p.setRemoveAbandonedTimeout(60);
p.setMinEvictableIdleTimeMillis(30000);
p.setMinIdle(10);
+ p.setJdbcInterceptors("org.apache.tomcat.jdbc.pool.interceptor.ConnectionState;org.apache.tomcat.jdbc.pool.interceptor.StatementFinalizer");
p.setLogAbandoned(true);
p.setRemoveAbandoned(true);
DataSource datasource = new DataSource();