Repository: logging-log4j2 Updated Branches: refs/heads/master 1c0e68d3a -> 2c75673bb
[LOG4J2-2505] Let JDBC PoolingDriverConnectionSource with Apache Commons DBCP configure a PoolableConnectionFactory. Use String[]. Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/2c75673b Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/2c75673b Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/2c75673b Branch: refs/heads/master Commit: 2c75673bb22c304c36d28f8452aa625bbc41f1fb Parents: 1c0e68d Author: Gary Gregory <garydgreg...@gmail.com> Authored: Wed Nov 14 19:13:40 2018 -0700 Committer: Gary Gregory <garydgreg...@gmail.com> Committed: Wed Nov 14 19:13:40 2018 -0700 ---------------------------------------------------------------------- .../PoolableConnectionFactoryConfig.java | 39 ++++++++++++-------- 1 file changed, 24 insertions(+), 15 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/2c75673b/log4j-jdbc-dbcp2/src/main/java/org/apache/logging/log4j/dbcp2/appender/PoolableConnectionFactoryConfig.java ---------------------------------------------------------------------- diff --git a/log4j-jdbc-dbcp2/src/main/java/org/apache/logging/log4j/dbcp2/appender/PoolableConnectionFactoryConfig.java b/log4j-jdbc-dbcp2/src/main/java/org/apache/logging/log4j/dbcp2/appender/PoolableConnectionFactoryConfig.java index 208485d..71e2147 100644 --- a/log4j-jdbc-dbcp2/src/main/java/org/apache/logging/log4j/dbcp2/appender/PoolableConnectionFactoryConfig.java +++ b/log4j-jdbc-dbcp2/src/main/java/org/apache/logging/log4j/dbcp2/appender/PoolableConnectionFactoryConfig.java @@ -17,7 +17,9 @@ package org.apache.logging.log4j.dbcp2.appender; +import java.util.Arrays; import java.util.Collection; +import java.util.List; import org.apache.commons.dbcp2.PoolableConnectionFactory; import org.apache.commons.pool2.impl.GenericKeyedObjectPoolConfig; @@ -52,8 +54,9 @@ public class PoolableConnectionFactoryConfig { @PluginBuilderAttribute private boolean cacheState; + // TODO @PluginElement("ConnectionInitSqls") - private Collection<String> connectionInitSqls; + private String[] connectionInitSqls; @PluginBuilderAttribute private Boolean defaultAutoCommit; @@ -70,8 +73,10 @@ public class PoolableConnectionFactoryConfig { @PluginBuilderAttribute private int defaultTransactionIsolation = UNKNOWN_TRANSACTION_ISOLATION; + // TODO @PluginElement("DisconnectionSqlCodes") - private Collection<String> disconnectionSqlCodes = DEFAULT.getDisconnectionSqlCodes(); + private String[] disconnectionSqlCodes = (String[]) (DEFAULT.getDisconnectionSqlCodes() == null ? null + : DEFAULT.getDisconnectionSqlCodes().toArray()); @PluginBuilderAttribute private boolean autoCommitOnReturn = DEFAULT.isEnableAutoCommitOnReturn(); @@ -97,21 +102,30 @@ public class PoolableConnectionFactoryConfig { @PluginBuilderAttribute private int validationQueryTimeoutSeconds = -1; + private List<String> asList(final String[] array) { + return array == null ? null : Arrays.asList(array); + } + @Override public PoolableConnectionFactoryConfig build() { - return new PoolableConnectionFactoryConfig(cacheState, connectionInitSqls, defaultAutoCommit, + return new PoolableConnectionFactoryConfig(cacheState, asList(connectionInitSqls), defaultAutoCommit, defaultCatalog, defaultQueryTimeoutSeconds, defaultReadOnly, defaultTransactionIsolation, - disconnectionSqlCodes, autoCommitOnReturn, fastFailValidation, maxConnLifetimeMillis, + asList(disconnectionSqlCodes), autoCommitOnReturn, fastFailValidation, maxConnLifetimeMillis, maxOpenPreparedStatements, poolStatements, rollbackOnReturn, validationQuery, validationQueryTimeoutSeconds); } + public Builder setAutoCommitOnReturn(final boolean autoCommitOnReturn) { + this.autoCommitOnReturn = autoCommitOnReturn; + return this; + } + public Builder setCacheState(final boolean cacheState) { this.cacheState = cacheState; return this; } - public Builder setConnectionInitSqls(final Collection<String> connectionInitSqls) { + public Builder setConnectionInitSqls(final String... connectionInitSqls) { this.connectionInitSqls = connectionInitSqls; return this; } @@ -141,16 +155,11 @@ public class PoolableConnectionFactoryConfig { return this; } - public Builder setDisconnectionSqlCodes(final Collection<String> disconnectionSqlCodes) { + public Builder setDisconnectionSqlCodes(final String... disconnectionSqlCodes) { this.disconnectionSqlCodes = disconnectionSqlCodes; return this; } - public Builder setAutoCommitOnReturn(final boolean autoCommitOnReturn) { - this.autoCommitOnReturn = autoCommitOnReturn; - return this; - } - public Builder setFastFailValidation(final boolean fastFailValidation) { this.fastFailValidation = fastFailValidation; return this; @@ -202,7 +211,7 @@ public class PoolableConnectionFactoryConfig { private final Boolean defaultReadOnly; private final int defaultTransactionIsolation; private final Collection<String> disconnectionSqlCodes; - private final boolean enableAutoCommitOnReturn; + private final boolean autoCommitOnReturn; private final boolean fastFailValidation; private final long maxConnLifetimeMillis; private final int maxOpenPreparedStatements; @@ -228,7 +237,7 @@ public class PoolableConnectionFactoryConfig { this.defaultReadOnly = defaultReadOnly; this.defaultTransactionIsolation = defaultTransactionIsolation; this.disconnectionSqlCodes = disconnectionSqlCodes; - this.enableAutoCommitOnReturn = enableAutoCommitOnReturn; + this.autoCommitOnReturn = enableAutoCommitOnReturn; this.fastFailValidation = fastFailValidation; this.maxConnLifetimeMillis = maxConnLifetimeMillis; this.maxOpenPreparedStatements = maxOpenPreparedStatements; @@ -250,7 +259,7 @@ public class PoolableConnectionFactoryConfig { poolableConnectionFactory.setDefaultReadOnly(defaultReadOnly); poolableConnectionFactory.setDefaultTransactionIsolation(defaultTransactionIsolation); poolableConnectionFactory.setDisconnectionSqlCodes(disconnectionSqlCodes); - poolableConnectionFactory.setEnableAutoCommitOnReturn(enableAutoCommitOnReturn); + poolableConnectionFactory.setEnableAutoCommitOnReturn(autoCommitOnReturn); poolableConnectionFactory.setFastFailValidation(fastFailValidation); poolableConnectionFactory.setMaxConnLifetimeMillis(maxConnLifetimeMillis); poolableConnectionFactory.setMaxOpenPreparedStatements(maxOpenPreparedStatements); @@ -267,7 +276,7 @@ public class PoolableConnectionFactoryConfig { return String.format( "PoolableConnectionFactoryConfig [cacheState=%s, connectionInitSqls=%s, defaultAutoCommit=%s, defaultCatalog=%s, defaultQueryTimeoutSeconds=%s, defaultReadOnly=%s, defaultTransactionIsolation=%s, disconnectionSqlCodes=%s, enableAutoCommitOnReturn=%s, fastFailValidation=%s, maxConnLifetimeMillis=%s, maxOpenPreparedStatements=%s, poolStatements=%s, rollbackOnReturn=%s, validationQuery=%s, validationQueryTimeoutSeconds=%s]", cacheState, connectionInitSqls, defaultAutoCommit, defaultCatalog, defaultQueryTimeoutSeconds, - defaultReadOnly, defaultTransactionIsolation, disconnectionSqlCodes, enableAutoCommitOnReturn, + defaultReadOnly, defaultTransactionIsolation, disconnectionSqlCodes, autoCommitOnReturn, fastFailValidation, maxConnLifetimeMillis, maxOpenPreparedStatements, poolStatements, rollbackOnReturn, validationQuery, validationQueryTimeoutSeconds); }