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);
     }

Reply via email to