From 8df164c5bf1da4801476f886146f8a131143c64b Mon Sep 17 00:00:00 2001 From: fhanik Date: Fri, 29 Apr 2011 17:33:15 +0000 Subject: [PATCH] https://issues.apache.org/bugzilla/show_bug.cgi?id=48817 Add in setValidator to support dependency injection frameworks like Spring etc git-svn-id: https://svn.apache.org/repos/asf/tomcat/trunk@1097895 13f79535-47bb-0310-9956-ffa450edef68 --- .../java/org/apache/tomcat/jdbc/pool/DataSourceProxy.java | 8 ++++++++ .../java/org/apache/tomcat/jdbc/pool/PoolConfiguration.java | 7 +++++++ .../java/org/apache/tomcat/jdbc/pool/PoolProperties.java | 13 +++++++++++++ .../org/apache/tomcat/jdbc/pool/jmx/ConnectionPool.java | 9 +++++++++ 4 files changed, 37 insertions(+) diff --git a/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/DataSourceProxy.java b/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/DataSourceProxy.java index e8399913e..225d07a3c 100644 --- a/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/DataSourceProxy.java +++ b/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/DataSourceProxy.java @@ -844,6 +844,14 @@ public class DataSourceProxy implements PoolConfiguration { public Validator getValidator() { return getPoolProperties().getValidator(); } + + /** + * {@inheritDoc} + */ + public void setValidator(Validator validator) { + getPoolProperties().setValidator(validator); + } + /** * {@inheritDoc} diff --git a/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/PoolConfiguration.java b/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/PoolConfiguration.java index b8d2515cb..b4ddb34bc 100644 --- a/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/PoolConfiguration.java +++ b/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/PoolConfiguration.java @@ -542,6 +542,13 @@ public interface PoolConfiguration { * @return the optional validator object - may be null */ public Validator getValidator(); + + /** + * Sets the validator object + * If this is a non null object, it will be used as a validator instead of the validationQuery + * If this is null, remove the usage of the validator. + */ + public void setValidator(Validator validator); /** * avoid excess validation, only run validation at most at this frequency - time in milliseconds. diff --git a/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/PoolProperties.java b/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/PoolProperties.java index be013393d..5a1272f43 100644 --- a/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/PoolProperties.java +++ b/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/PoolProperties.java @@ -358,6 +358,19 @@ public class PoolProperties implements PoolConfiguration { public Validator getValidator() { return validator; } + + /** + * {@inheritDoc} + */ + public void setValidator(Validator validator) { + this.validator = validator; + if (validator!=null) { + this.validatorClassName = validator.getClass().getName(); + } else { + this.validatorClassName = null; + } + } + /** * {@inheritDoc} diff --git a/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/jmx/ConnectionPool.java b/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/jmx/ConnectionPool.java index 657cf0e8e..6e6100b24 100644 --- a/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/jmx/ConnectionPool.java +++ b/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/jmx/ConnectionPool.java @@ -638,4 +638,13 @@ public class ConnectionPool extends NotificationBroadcasterSupport implements Co //noop } + /** + * {@inheritDoc} + */ + public void setValidator(Validator validator) { + //noop + } + + + } -- 2.11.0