This is an automated email from the ASF dual-hosted git repository.

markt pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-dbcp.git


The following commit(s) were added to refs/heads/master by this push:
     new 28eb33b  Update MXBean for use of Duration with BasicDataSource
28eb33b is described below

commit 28eb33b5b3551de2e630a4cb59dc3bc5506f8114
Author: Mark Thomas <[email protected]>
AuthorDate: Wed Jan 5 19:07:51 2022 +0000

    Update MXBean for use of Duration with BasicDataSource
---
 .../org/apache/commons/dbcp2/BasicDataSource.java  |  7 ++
 .../org/apache/commons/dbcp2/DataSourceMXBean.java | 77 ++++++++++++++++++++++
 .../commons/dbcp2/TestBasicDataSourceMXBean.java   | 37 +++++++++++
 3 files changed, 121 insertions(+)

diff --git a/src/main/java/org/apache/commons/dbcp2/BasicDataSource.java 
b/src/main/java/org/apache/commons/dbcp2/BasicDataSource.java
index 07615d2..bb451cd 100644
--- a/src/main/java/org/apache/commons/dbcp2/BasicDataSource.java
+++ b/src/main/java/org/apache/commons/dbcp2/BasicDataSource.java
@@ -1064,6 +1064,7 @@ public class BasicDataSource implements DataSource, 
BasicDataSourceMXBean, MBean
      * @return the maximum permitted duration of a connection.
      * @since 2.10.0
      */
+    @Override
     public Duration getMaxConnDuration() {
         return maxConnDuration;
     }
@@ -1123,6 +1124,7 @@ public class BasicDataSource implements DataSource, 
BasicDataSourceMXBean, MBean
      * @return the maxWaitDuration property value.
      * @since 2.10.0
      */
+    @Override
     public synchronized Duration getMaxWaitDuration() {
         return this.maxWaitDuration;
     }
@@ -1147,6 +1149,7 @@ public class BasicDataSource implements DataSource, 
BasicDataSourceMXBean, MBean
      * @see #setMinEvictableIdle(Duration)
      * @since 2.10.0
      */
+    @Override
     public synchronized Duration getMinEvictableIdleDuration() {
         return this.minEvictableIdleDuration;
     }
@@ -1324,6 +1327,7 @@ public class BasicDataSource implements DataSource, 
BasicDataSourceMXBean, MBean
      * @return Timeout before an abandoned connection can be removed.
      * @since 2.10.0
      */
+    @Override
     public Duration getRemoveAbandonedTimeoutDuration() {
         return abandonedConfig == null ? Duration.ofSeconds(300) : 
abandonedConfig.getRemoveAbandonedTimeoutDuration();
     }
@@ -1353,6 +1357,7 @@ public class BasicDataSource implements DataSource, 
BasicDataSourceMXBean, MBean
      *         there are minIdle idle connections in the pool
      * @since 2.10.0
      */
+    @Override
     public synchronized Duration getSoftMinEvictableIdleDuration() {
         return softMinEvictableIdleDuration;
     }
@@ -1429,6 +1434,7 @@ public class BasicDataSource implements DataSource, 
BasicDataSourceMXBean, MBean
      * @see #setDurationBetweenEvictionRuns(Duration)
      * @since 2.10.0
      */
+    @Override
     public synchronized Duration getDurationBetweenEvictionRuns() {
         return this.durationBetweenEvictionRuns;
     }
@@ -1482,6 +1488,7 @@ public class BasicDataSource implements DataSource, 
BasicDataSourceMXBean, MBean
      *
      * @return the timeout in seconds before connection validation queries 
fail.
      */
+    @Override
     public Duration getValidationQueryTimeoutDuration() {
         return validationQueryTimeoutDuration;
     }
diff --git a/src/main/java/org/apache/commons/dbcp2/DataSourceMXBean.java 
b/src/main/java/org/apache/commons/dbcp2/DataSourceMXBean.java
index 56fb5c8..9922542 100644
--- a/src/main/java/org/apache/commons/dbcp2/DataSourceMXBean.java
+++ b/src/main/java/org/apache/commons/dbcp2/DataSourceMXBean.java
@@ -17,6 +17,7 @@
 package org.apache.commons.dbcp2;
 
 import java.sql.SQLException;
+import java.time.Duration;
 
 /**
  * Defines the methods that will be made available via
@@ -138,10 +139,21 @@ public interface DataSourceMXBean {
     boolean getLogExpiredConnections();
 
     /**
+     * See {@link BasicDataSource#getMaxConnDuration()}.
+     *
+     * @return {@link BasicDataSource#getMaxConnDuration()}.
+     * @since 2.10.0
+     */
+    Duration getMaxConnDuration();
+
+    /**
      * See {@link BasicDataSource#getMaxConnLifetimeMillis()}.
      *
      * @return {@link BasicDataSource#getMaxConnLifetimeMillis()}.
+     *
+     * @deprecated Use {@link #getMaxConnDuration()}.
      */
+    @Deprecated
     long getMaxConnLifetimeMillis();
 
     /**
@@ -166,17 +178,39 @@ public interface DataSourceMXBean {
     int getMaxTotal();
 
     /**
+     * See {@link BasicDataSource#getMaxWaitDuration()}.
+     *
+     * @return {@link BasicDataSource#getMaxWaitDuration()}.
+     * @since 2.10.0
+     */
+    Duration getMaxWaitDuration();
+
+    /**
      * See {@link BasicDataSource#getMaxWaitMillis()}.
      *
      * @return {@link BasicDataSource#getMaxWaitMillis()}.
+     *
+     * @deprecated Use {@link #getMaxWaitDuration()}.
      */
+    @Deprecated
     long getMaxWaitMillis();
 
     /**
+     * See {@link BasicDataSource#getMinEvictableIdleDuration()}.
+     *
+     * @return {@link BasicDataSource#getMinEvictableIdleDuration()}.
+     * @since 2.10.0
+     */
+    Duration getMinEvictableIdleDuration();
+
+    /**
      * See {@link BasicDataSource#getMinEvictableIdleTimeMillis()}.
      *
      * @return {@link BasicDataSource#getMinEvictableIdleTimeMillis()}.
+     *
+     * @deprecated Use {@link #getMinEvictableIdleDuration()}.
      */
+    @Deprecated
     long getMinEvictableIdleTimeMillis();
 
     /**
@@ -222,17 +256,39 @@ public interface DataSourceMXBean {
     boolean getRemoveAbandonedOnMaintenance();
 
     /**
+     * See {@link BasicDataSource#getRemoveAbandonedTimeoutDuration()}.
+     *
+     * @return {@link BasicDataSource#getRemoveAbandonedTimeoutDuration()}.
+     * @since 2.10.0
+     */
+    Duration getRemoveAbandonedTimeoutDuration();
+
+    /**
      * See {@link BasicDataSource#getRemoveAbandonedTimeout()}.
      *
      * @return {@link BasicDataSource#getRemoveAbandonedTimeout()}.
+     *
+     * @deprecated Use {@link #getRemoveAbandonedTimeoutDuration()}.
      */
+    @Deprecated
     int getRemoveAbandonedTimeout();
 
     /**
+     * See {@link BasicDataSource#getSoftMinEvictableIdleDuration()}.
+     *
+     * @return {@link BasicDataSource#getSoftMinEvictableIdleDuration()}.
+     * @since 2.10.0
+     */
+    Duration getSoftMinEvictableIdleDuration();
+
+    /**
      * See {@link BasicDataSource#getSoftMinEvictableIdleTimeMillis()}.
      *
      * @return {@link BasicDataSource#getSoftMinEvictableIdleTimeMillis()}.
+     *
+     * @deprecated Use {@link #getSoftMinEvictableIdleDuration()}.
      */
+    @Deprecated
     long getSoftMinEvictableIdleTimeMillis();
 
     /**
@@ -257,10 +313,20 @@ public interface DataSourceMXBean {
     boolean getTestWhileIdle();
 
     /**
+     * See {@link BasicDataSource#getDurationBetweenEvictionRuns()}.
+     *
+     * @return {@link BasicDataSource#getDurationBetweenEvictionRuns()}.
+     * @since 2.10.0
+     */
+    Duration getDurationBetweenEvictionRuns();
+
+    /**
      * See {@link BasicDataSource#getTimeBetweenEvictionRunsMillis()}.
      *
      * @return {@link BasicDataSource#getTimeBetweenEvictionRunsMillis()}.
+     * @deprecated Use {@link #getDurationBetweenEvictionRuns()}.
      */
+    @Deprecated
     long getTimeBetweenEvictionRunsMillis();
 
     /**
@@ -285,10 +351,21 @@ public interface DataSourceMXBean {
     String getValidationQuery();
 
     /**
+     * See {@link BasicDataSource#getValidationQueryTimeoutDuration()}.
+     *
+     * @return {@link BasicDataSource#getValidationQueryTimeoutDuration()}.
+     * @since 2.10.0
+     */
+    Duration getValidationQueryTimeoutDuration();
+
+    /**
      * See {@link BasicDataSource#getValidationQueryTimeout()}.
      *
      * @return {@link BasicDataSource#getValidationQueryTimeout()}.
+     *
+     * @deprecated Use {@link #getValidationQueryTimeoutDuration()}.
      */
+    @Deprecated
     int getValidationQueryTimeout();
 
     /**
diff --git 
a/src/test/java/org/apache/commons/dbcp2/TestBasicDataSourceMXBean.java 
b/src/test/java/org/apache/commons/dbcp2/TestBasicDataSourceMXBean.java
index bde0cbf..65d4276 100644
--- a/src/test/java/org/apache/commons/dbcp2/TestBasicDataSourceMXBean.java
+++ b/src/test/java/org/apache/commons/dbcp2/TestBasicDataSourceMXBean.java
@@ -17,6 +17,8 @@
 
 package org.apache.commons.dbcp2;
 
+import java.time.Duration;
+
 import static org.junit.jupiter.api.Assertions.assertNull;
 
 import org.junit.jupiter.api.Test;
@@ -99,6 +101,11 @@ public class TestBasicDataSourceMXBean {
         }
 
         @Override
+        public Duration getMaxConnDuration() {
+            return Duration.ZERO;
+        }
+
+        @Override
         public long getMaxConnLifetimeMillis() {
             return 0;
         }
@@ -119,11 +126,21 @@ public class TestBasicDataSourceMXBean {
         }
 
         @Override
+        public Duration getMaxWaitDuration() {
+            return Duration.ZERO;
+        }
+
+        @Override
         public long getMaxWaitMillis() {
             return 0;
         }
 
         @Override
+        public Duration getMinEvictableIdleDuration() {
+            return Duration.ZERO;
+        }
+
+        @Override
         public long getMinEvictableIdleTimeMillis() {
             return 0;
         }
@@ -164,11 +181,21 @@ public class TestBasicDataSourceMXBean {
         }
 
         @Override
+        public Duration getRemoveAbandonedTimeoutDuration() {
+            return Duration.ZERO;
+        }
+
+        @Override
         public int getRemoveAbandonedTimeout() {
             return 0;
         }
 
         @Override
+        public Duration getSoftMinEvictableIdleDuration() {
+            return Duration.ZERO;
+        }
+
+        @Override
         public long getSoftMinEvictableIdleTimeMillis() {
             return 0;
         }
@@ -189,6 +216,11 @@ public class TestBasicDataSourceMXBean {
         }
 
         @Override
+        public Duration getDurationBetweenEvictionRuns() {
+            return Duration.ZERO;
+        }
+
+        @Override
         public long getTimeBetweenEvictionRunsMillis() {
             return 0;
         }
@@ -209,6 +241,11 @@ public class TestBasicDataSourceMXBean {
         }
 
         @Override
+        public Duration getValidationQueryTimeoutDuration() {
+            return Duration.ZERO;
+        }
+
+        @Override
         public int getValidationQueryTimeout() {
             return 0;
         }

Reply via email to