You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by gg...@apache.org on 2022/07/03 12:40:54 UTC
[commons-dbcp] 01/04: Refactor duplicate pattern
This is an automated email from the ASF dual-hosted git repository.
ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-dbcp.git
commit 344234a758da62aa422f6f67c6e7b1f37329c9c0
Author: Gary Gregory <ga...@gmail.com>
AuthorDate: Sun Jul 3 07:53:52 2022 -0400
Refactor duplicate pattern
---
.../org/apache/commons/dbcp2/BasicDataSource.java | 73 ++++++----------------
1 file changed, 18 insertions(+), 55 deletions(-)
diff --git a/src/main/java/org/apache/commons/dbcp2/BasicDataSource.java b/src/main/java/org/apache/commons/dbcp2/BasicDataSource.java
index 3763d1d1..5aad39d7 100644
--- a/src/main/java/org/apache/commons/dbcp2/BasicDataSource.java
+++ b/src/main/java/org/apache/commons/dbcp2/BasicDataSource.java
@@ -36,6 +36,7 @@ import java.util.List;
import java.util.Objects;
import java.util.Properties;
import java.util.Set;
+import java.util.function.BiConsumer;
import java.util.logging.Logger;
import javax.management.MBeanRegistration;
@@ -1711,22 +1712,26 @@ public class BasicDataSource implements DataSource, BasicDataSourceMXBean, MBean
start();
}
- /**
- * Sets the print writer to be used by this configuration to log information on abandoned objects.
- *
- * @param logWriter The new log writer
- */
- public void setAbandonedLogWriter(final PrintWriter logWriter) {
+ private <T> void setAbandoned(final T object, BiConsumer<AbandonedConfig, T> consumer) {
if (abandonedConfig == null) {
abandonedConfig = new AbandonedConfig();
}
- abandonedConfig.setLogWriter(logWriter);
+ consumer.accept(abandonedConfig, object);
final GenericObjectPool<?> gop = this.connectionPool;
if (gop != null) {
gop.setAbandonedConfig(abandonedConfig);
}
}
+ /**
+ * Sets the print writer to be used by this configuration to log information on abandoned objects.
+ *
+ * @param logWriter The new log writer
+ */
+ public void setAbandonedLogWriter(final PrintWriter logWriter) {
+ setAbandoned(logWriter, AbandonedConfig::setLogWriter);
+ }
+
/**
* If the connection pool implements {@link org.apache.commons.pool2.UsageTracking UsageTracking}, configure whether
* the connection pool should record a stack trace every time a method is called on a pooled connection and retain
@@ -1736,14 +1741,7 @@ public class BasicDataSource implements DataSource, BasicDataSourceMXBean, MBean
* pooled connection
*/
public void setAbandonedUsageTracking(final boolean usageTracking) {
- if (abandonedConfig == null) {
- abandonedConfig = new AbandonedConfig();
- }
- abandonedConfig.setUseUsageTracking(usageTracking);
- final GenericObjectPool<?> gop = this.connectionPool;
- if (gop != null) {
- gop.setAbandonedConfig(abandonedConfig);
- }
+ setAbandoned(usageTracking, AbandonedConfig::setUseUsageTracking);
}
/**
@@ -2125,14 +2123,7 @@ public class BasicDataSource implements DataSource, BasicDataSourceMXBean, MBean
* @param logAbandoned new logAbandoned property value
*/
public void setLogAbandoned(final boolean logAbandoned) {
- if (abandonedConfig == null) {
- abandonedConfig = new AbandonedConfig();
- }
- abandonedConfig.setLogAbandoned(logAbandoned);
- final GenericObjectPool<?> gop = this.connectionPool;
- if (gop != null) {
- gop.setAbandonedConfig(abandonedConfig);
- }
+ setAbandoned(logAbandoned, AbandonedConfig::setLogAbandoned);
}
/**
@@ -2373,14 +2364,7 @@ public class BasicDataSource implements DataSource, BasicDataSourceMXBean, MBean
* @see #getRemoveAbandonedOnBorrow()
*/
public void setRemoveAbandonedOnBorrow(final boolean removeAbandonedOnBorrow) {
- if (abandonedConfig == null) {
- abandonedConfig = new AbandonedConfig();
- }
- abandonedConfig.setRemoveAbandonedOnBorrow(removeAbandonedOnBorrow);
- final GenericObjectPool<?> gop = this.connectionPool;
- if (gop != null) {
- gop.setAbandonedConfig(abandonedConfig);
- }
+ setAbandoned(removeAbandonedOnBorrow, AbandonedConfig::setRemoveAbandonedOnBorrow);
}
/**
@@ -2388,14 +2372,7 @@ public class BasicDataSource implements DataSource, BasicDataSourceMXBean, MBean
* @see #getRemoveAbandonedOnMaintenance()
*/
public void setRemoveAbandonedOnMaintenance(final boolean removeAbandonedOnMaintenance) {
- if (abandonedConfig == null) {
- abandonedConfig = new AbandonedConfig();
- }
- abandonedConfig.setRemoveAbandonedOnMaintenance(removeAbandonedOnMaintenance);
- final GenericObjectPool<?> gop = this.connectionPool;
- if (gop != null) {
- gop.setAbandonedConfig(abandonedConfig);
- }
+ setAbandoned(removeAbandonedOnMaintenance, AbandonedConfig::setRemoveAbandonedOnMaintenance);
}
/**
@@ -2412,14 +2389,7 @@ public class BasicDataSource implements DataSource, BasicDataSourceMXBean, MBean
* @since 2.10.0
*/
public void setRemoveAbandonedTimeout(final Duration removeAbandonedTimeout) {
- if (abandonedConfig == null) {
- abandonedConfig = new AbandonedConfig();
- }
- abandonedConfig.setRemoveAbandonedTimeout(removeAbandonedTimeout);
- final GenericObjectPool<?> gop = this.connectionPool;
- if (gop != null) {
- gop.setAbandonedConfig(abandonedConfig);
- }
+ setAbandoned(removeAbandonedTimeout, AbandonedConfig::setRemoveAbandonedTimeout);
}
/**
@@ -2437,14 +2407,7 @@ public class BasicDataSource implements DataSource, BasicDataSourceMXBean, MBean
*/
@Deprecated
public void setRemoveAbandonedTimeout(final int removeAbandonedTimeout) {
- if (abandonedConfig == null) {
- abandonedConfig = new AbandonedConfig();
- }
- abandonedConfig.setRemoveAbandonedTimeout(Duration.ofSeconds(removeAbandonedTimeout));
- final GenericObjectPool<?> gop = this.connectionPool;
- if (gop != null) {
- gop.setAbandonedConfig(abandonedConfig);
- }
+ setAbandoned(Duration.ofSeconds(removeAbandonedTimeout), AbandonedConfig::setRemoveAbandonedTimeout);
}
/**