You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by re...@apache.org on 2016/07/14 13:15:08 UTC

svn commit: r1752659 - /jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDataSourceFactory.java

Author: reschke
Date: Thu Jul 14 13:15:08 2016
New Revision: 1752659

URL: http://svn.apache.org/viewvc?rev=1752659&view=rev
Log:
OAK-4477: RDBDatasourceFactory - allow interceptor config for Tomcat JDBC pool and use defaults similar to Sling datasource

Modified:
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDataSourceFactory.java

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDataSourceFactory.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDataSourceFactory.java?rev=1752659&r1=1752658&r2=1752659&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDataSourceFactory.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDataSourceFactory.java Thu Jul 14 13:15:08 2016
@@ -77,6 +77,13 @@ public class RDBDataSourceFactory {
                 dsclazz.getMethod("setUsername", String.class).invoke(ds, username);
                 dsclazz.getMethod("setPassword", String.class).invoke(ds, passwd);
                 dsclazz.getMethod("setUrl", String.class).invoke(ds, url);
+                // SHOULD also contain StatementCache, but see OAK-4559 
+                String interceptors = System.getProperty(
+                        "org.apache.jackrabbit.oak.plugins.document.rdb.RDBDataSourceFactory.jdbcInterceptors",
+                        "SlowQueryReport(threshold=10000);ConnectionState");
+                if (!interceptors.isEmpty()) {
+                    dsclazz.getMethod("setJdbcInterceptors", String.class).invoke(ds, interceptors);
+                }
                 return new CloseableDataSource(ds);
             } catch (Exception ex) {
                 String message = "trying to create datasource " + classname;