From d594eaf126d0d039ce39228c0f5e376c30e7b938 Mon Sep 17 00:00:00 2001 From: Gert-Jan Paulissen Date: Tue, 14 May 2024 17:33:42 +0200 Subject: [PATCH 01/11] Connection via Wallets works. --- conf/app/pom.xml | 9 -------- pom.xml | 56 ++++++++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 54 insertions(+), 11 deletions(-) diff --git a/conf/app/pom.xml b/conf/app/pom.xml index be34afd2..b1120503 100644 --- a/conf/app/pom.xml +++ b/conf/app/pom.xml @@ -22,15 +22,6 @@ ${env.DB_PASSWORD} - - - - ${ojdbc.groupId} - ${ojdbc.artifactId} - ${ojdbc.version} - - - test-connection diff --git a/pom.xml b/pom.xml index b15e826e..0c1ca158 100644 --- a/pom.xml +++ b/pom.xml @@ -65,8 +65,8 @@ - - 10.13.0 + + 10.12.0 @@ -74,6 +74,21 @@ 11 ojdbc${ojdbc.java.version} 23.3.0.23.09 + + com.oracle.database.security + oraclepki + ${ojdbc.version} + + ${oraclepki.groupId} + osdt_core + 21.11.0.0 + + ${osdt_core.groupId} + osdt_cert + ${osdt_core.version} + + + @@ -353,4 +368,41 @@ jdbc + + + + + + ${ojdbc.groupId} + ${ojdbc.artifactId} + ${ojdbc.version} + + + + ${oraclepki.groupId} + ${oraclepki.artifactId} + ${oraclepki.version} + + + ${osdt_core.groupId} + ${osdt_core.artifactId} + ${osdt_core.version} + + + ${osdt_cert.groupId} + ${osdt_cert.artifactId} + ${osdt_cert.version} + + + From b88e23a2496be306b3b204e19f5360b33e7565c2 Mon Sep 17 00:00:00 2001 From: Gert-Jan Paulissen Date: Tue, 14 May 2024 18:09:17 +0200 Subject: [PATCH 02/11] One Oracle Maven dependency. --- .mvn/maven.config | 2 +- conf/pom.xml | 2 +- jdbc/pom.xml | 26 ++++++------ jdbc/smart-pool-data-source-jmh-test/pom.xml | 4 ++ jdbc/smart-pool-data-source-jmh/pom.xml | 4 +- .../CheckConfigurationHikariUnitTest.java | 11 +++-- pom.xml | 40 +------------------ 7 files changed, 33 insertions(+), 56 deletions(-) diff --git a/.mvn/maven.config b/.mvn/maven.config index 4efb4fe4..f49b8e9c 100644 --- a/.mvn/maven.config +++ b/.mvn/maven.config @@ -1 +1 @@ --Drevision=3.1.0 +-Drevision=3.1.1-SNAPSHOT diff --git a/conf/pom.xml b/conf/pom.xml index e0830c65..453a38e7 100644 --- a/conf/pom.xml +++ b/conf/pom.xml @@ -111,7 +111,7 @@ ${ojdbc.groupId} ${ojdbc.artifactId} ${ojdbc.version} - pom + ${ojdbc.type} 5.2.3.RELEASE 2.2.3.RELEASE 3.9 @@ -68,6 +70,7 @@ ${lombok.version} provided + org.springframework @@ -161,6 +165,7 @@ lombok provided + + + + ${ojdbc.groupId} + ${ojdbc.artifactId} + ${ojdbc.version} + ${ojdbc.type} + provided + org.springframework @@ -270,18 +284,6 @@ versions:display-dependency-updates versions:display-parent-updates versions:display-plugin-updates versions:display-property-updates - - java8 - - false - - - 8 - ojdbc8 - ucp - 19.7.0.0 - - diff --git a/jdbc/smart-pool-data-source-jmh-test/pom.xml b/jdbc/smart-pool-data-source-jmh-test/pom.xml index 5ab63a8b..ce4b12f6 100644 --- a/jdbc/smart-pool-data-source-jmh-test/pom.xml +++ b/jdbc/smart-pool-data-source-jmh-test/pom.xml @@ -70,9 +70,11 @@ THE POSSIBILITY OF SUCH DAMAGE. 2.2.3.RELEASE 3.4.2 1.18.30 + @@ -107,6 +109,7 @@ THE POSSIBILITY OF SUCH DAMAGE. ${lombok.version} provided + com.paulissoft.pato.jdbc smart-pool-data-source diff --git a/jdbc/smart-pool-data-source-jmh/pom.xml b/jdbc/smart-pool-data-source-jmh/pom.xml index 5edbeee6..2f06b46f 100644 --- a/jdbc/smart-pool-data-source-jmh/pom.xml +++ b/jdbc/smart-pool-data-source-jmh/pom.xml @@ -96,7 +96,8 @@ lombok ${lombok.version} provided - + + com.paulissoft.pato.jdbc smart-pool-data-source diff --git a/jdbc/smart-pool-data-source/src/test/java/com/paulissoft/pato/jdbc/CheckConfigurationHikariUnitTest.java b/jdbc/smart-pool-data-source/src/test/java/com/paulissoft/pato/jdbc/CheckConfigurationHikariUnitTest.java index 43026554..dd2cd1c6 100644 --- a/jdbc/smart-pool-data-source/src/test/java/com/paulissoft/pato/jdbc/CheckConfigurationHikariUnitTest.java +++ b/jdbc/smart-pool-data-source/src/test/java/com/paulissoft/pato/jdbc/CheckConfigurationHikariUnitTest.java @@ -69,8 +69,10 @@ void testPoolDataSourceConfigurationOperator() { assertEquals(CombiPoolDataSourceHikari.class, poolDataSourceConfiguration.getType()); assertEquals("PoolDataSourceConfigurationHikari(super=PoolDataSourceConfiguration(driverClassName=oracle.jdbc.OracleDriver, " + "url=jdbc:oracle:thin:@//127.0.0.1:1521/freepdb1, username=bodomain[boopapij], password=bodomain, " + - "type=class com.paulissoft.pato.jdbc.CombiPoolDataSourceHikari), poolName=HikariPool-" + - (operatorDataSourceHikari.isParentPoolDataSource() ? "boopapij" : "boopapij-bodomain") + ", " + + "type=class com.paulissoft.pato.jdbc.CombiPoolDataSourceHikari), " + + "poolName=" + (operatorDataSourceHikari.isParentPoolDataSource() ? + operatorDataSourceHikari.getPoolNamePrefix() + "-boopapij-boopapij" : + domainDataSourceHikari.getPoolNamePrefix() + "-bodomain-boopapij") + ", " + "maximumPoolSize=60, minimumIdle=60, dataSourceClassName=null, autoCommit=true, connectionTimeout=30000, " + "idleTimeout=600000, maxLifetime=1800000, connectionTestQuery=select 1 from dual, initializationFailTimeout=1, " + "isolateInternalQueries=false, allowPoolSuspension=false, readOnly=false, registerMbeans=false, " + @@ -85,7 +87,10 @@ void testPoolDataSource() { final SimplePoolDataSourceHikari simplePoolDataSourceHikari = domainDataSourceHikari.getPoolDataSource(); - assertEquals("HikariPool-boopapij-bodomain", simplePoolDataSourceHikari.getPoolName()); + assertEquals(domainDataSourceHikari.isParentPoolDataSource() ? + "HikariPool-bodomain-boopapij" : + "HikariPool-boopapij-bodomain", + simplePoolDataSourceHikari.getPoolName()); assertEquals(2 * 60, simplePoolDataSourceHikari.getMaximumPoolSize()); assertEquals(2 * 60, simplePoolDataSourceHikari.getMinimumIdle()); assertEquals(null, simplePoolDataSourceHikari.getDataSourceClassName()); diff --git a/pom.xml b/pom.xml index 0c1ca158..415d1a73 100644 --- a/pom.xml +++ b/pom.xml @@ -72,8 +72,9 @@ com.oracle.database.jdbc 11 - ojdbc${ojdbc.java.version} + ojdbc${ojdbc.java.version}-production 23.3.0.23.09 + pom com.oracle.database.security oraclepki @@ -368,41 +369,4 @@ jdbc - - - - - - ${ojdbc.groupId} - ${ojdbc.artifactId} - ${ojdbc.version} - - - - ${oraclepki.groupId} - ${oraclepki.artifactId} - ${oraclepki.version} - - - ${osdt_core.groupId} - ${osdt_core.artifactId} - ${osdt_core.version} - - - ${osdt_cert.groupId} - ${osdt_cert.artifactId} - ${osdt_cert.version} - - - From b501a01151aae6efd735269183167c7d3be3cb33 Mon Sep 17 00:00:00 2001 From: Gert-Jan Paulissen Date: Tue, 14 May 2024 18:20:28 +0200 Subject: [PATCH 03/11] One JDBC Maven dependency. --- conf/pom.xml | 17 +----------- jdbc/pom.xml | 29 -------------------- jdbc/smart-pool-data-source-jmh-test/pom.xml | 19 ------------- jdbc/smart-pool-data-source-jmh/pom.xml | 12 -------- 4 files changed, 1 insertion(+), 76 deletions(-) diff --git a/conf/pom.xml b/conf/pom.xml index 453a38e7..8934e7f0 100644 --- a/conf/pom.xml +++ b/conf/pom.xml @@ -113,21 +113,6 @@ ${ojdbc.version} ${ojdbc.type} - @@ -135,7 +120,7 @@ ${ojdbc.groupId} ${ojdbc.artifactId} - pom + ${ojdbc.type} diff --git a/jdbc/pom.xml b/jdbc/pom.xml index f660c838..f66702a6 100644 --- a/jdbc/pom.xml +++ b/jdbc/pom.xml @@ -36,11 +36,6 @@ 3.3.1 3.4.2 1.18.30 - 5.2.3.RELEASE 2.2.3.RELEASE 3.9 @@ -70,18 +65,6 @@ ${lombok.version} provided - org.springframework @@ -165,18 +148,6 @@ lombok provided - ${ojdbc.groupId} diff --git a/jdbc/smart-pool-data-source-jmh-test/pom.xml b/jdbc/smart-pool-data-source-jmh-test/pom.xml index ce4b12f6..cb8ad360 100644 --- a/jdbc/smart-pool-data-source-jmh-test/pom.xml +++ b/jdbc/smart-pool-data-source-jmh-test/pom.xml @@ -70,11 +70,6 @@ THE POSSIBILITY OF SUCH DAMAGE. 2.2.3.RELEASE 3.4.2 1.18.30 - @@ -109,20 +104,6 @@ THE POSSIBILITY OF SUCH DAMAGE. ${lombok.version} provided - com.paulissoft.pato.jdbc smart-pool-data-source diff --git a/jdbc/smart-pool-data-source-jmh/pom.xml b/jdbc/smart-pool-data-source-jmh/pom.xml index 2f06b46f..0f50d997 100644 --- a/jdbc/smart-pool-data-source-jmh/pom.xml +++ b/jdbc/smart-pool-data-source-jmh/pom.xml @@ -97,18 +97,6 @@ ${lombok.version} provided - com.paulissoft.pato.jdbc smart-pool-data-source From 1563d6780f7c67024af26d985a2dcee5c8fd08e2 Mon Sep 17 00:00:00 2001 From: Gert-Jan Paulissen Date: Wed, 15 May 2024 13:56:09 +0200 Subject: [PATCH 04/11] Adding debugging. --- ...PoolDataSourcePropertiesGettersOracle.java | 2 - .../pato/jdbc/SimplePoolDataSourceHikari.java | 234 ++++++ .../pato/jdbc/SimplePoolDataSourceOracle.java | 717 ++---------------- .../resources/application-test.properties | 13 + 4 files changed, 328 insertions(+), 638 deletions(-) diff --git a/jdbc/smart-pool-data-source/src/main/java/com/paulissoft/pato/jdbc/PoolDataSourcePropertiesGettersOracle.java b/jdbc/smart-pool-data-source/src/main/java/com/paulissoft/pato/jdbc/PoolDataSourcePropertiesGettersOracle.java index 1b6e6887..ee8802e8 100644 --- a/jdbc/smart-pool-data-source/src/main/java/com/paulissoft/pato/jdbc/PoolDataSourcePropertiesGettersOracle.java +++ b/jdbc/smart-pool-data-source/src/main/java/com/paulissoft/pato/jdbc/PoolDataSourcePropertiesGettersOracle.java @@ -117,8 +117,6 @@ public interface PoolDataSourcePropertiesGettersOracle extends PoolDataSourcePro String getServiceName(); - int getSecondsToTrustIdleConnection(); - void reconfigureDataSource(Properties paramProperties) throws SQLException; int getMaxConnectionsPerService(); diff --git a/jdbc/smart-pool-data-source/src/main/java/com/paulissoft/pato/jdbc/SimplePoolDataSourceHikari.java b/jdbc/smart-pool-data-source/src/main/java/com/paulissoft/pato/jdbc/SimplePoolDataSourceHikari.java index 047a7a83..c9f8f1e2 100644 --- a/jdbc/smart-pool-data-source/src/main/java/com/paulissoft/pato/jdbc/SimplePoolDataSourceHikari.java +++ b/jdbc/smart-pool-data-source/src/main/java/com/paulissoft/pato/jdbc/SimplePoolDataSourceHikari.java @@ -254,4 +254,238 @@ public String toString() { return this.getPoolDataSourceConfiguration().toString(); } */ + + @Override + public String getDriverClassName() { + final String result = super.getDriverClassName(); + log.debug("getDriverClassName() = {}", result); + return result; + } + + @Override + public void setDriverClassName(String driverClassName) { + log.debug("setDriverClassName({})", driverClassName); + super.setDriverClassName(driverClassName); + } + + @Override + public String getJdbcUrl() { + final String result = super.getJdbcUrl(); + log.debug("getJdbcUrl() = {}", result); + return result; + } + + @Override + public void setJdbcUrl(String jdbcUrl) { + log.debug("setJdbcUrl({})", jdbcUrl); + super.setJdbcUrl(jdbcUrl); + } + + @Override + public String getPoolName() { + final String result = super.getPoolName(); + log.debug("getPoolName() = {}", result); + return result; + } + + @Override + public void setPoolName(String poolName) { + log.debug("setPoolName({})", poolName); + super.setPoolName(poolName); + } + + @Override + public int getMaximumPoolSize() { + final int result = super.getMaximumPoolSize(); + log.debug("getMaximumPoolSize() = {}", result); + return result; + } + + @Override + public void setMaximumPoolSize(int maxPoolSize) { + log.debug("setMaximumPoolSize({})", maxPoolSize); + super.setMaximumPoolSize(maxPoolSize); + } + + @Override + public int getMinimumIdle() { + final int result = super.getMinimumIdle(); + log.debug("getMinimumIdle() = {}", result); + return result; + } + + @Override + public void setMinimumIdle(int minIdle) { + log.debug("setMinimumIdle({})", minIdle); + super.setMinimumIdle(minIdle); + } + + @Override + public String getDataSourceClassName() { + final String result = super.getDataSourceClassName(); + log.debug("getDataSourceClassName() = {}", result); + return result; + } + + @Override + public void setDataSourceClassName(String dataSourceClassName) { + log.debug("setDataSourceClassName({})", dataSourceClassName); + super.setDataSourceClassName(dataSourceClassName); + } + + @Override + public boolean isAutoCommit() { + final boolean result = super.isAutoCommit(); + log.debug("isAutoCommit() = {}", result); + return result; + } + + @Override + public void setAutoCommit(boolean isAutoCommit) { + log.debug("setAutoCommit({})", isAutoCommit); + super.setAutoCommit(isAutoCommit); + } + + @Override + public long getConnectionTimeout() { + final long result = super.getConnectionTimeout(); + log.debug("getConnectionTimeout() = {}", result); + return result; + } + + @Override + public void setConnectionTimeout(long connectionTimeoutMs) { + log.debug("setConnectionTimeout({})", connectionTimeoutMs); + super.setConnectionTimeout(connectionTimeoutMs); + } + + @Override + public long getIdleTimeout() { + final long result = super.getIdleTimeout(); + log.debug("getIdleTimeout() = {}", result); + return result; + } + + @Override + public void setIdleTimeout(long idleTimeoutMs) { + log.debug("setIdleTimeout({})", idleTimeoutMs); + super.setIdleTimeout(idleTimeoutMs); + } + + @Override + public long getMaxLifetime() { + final long result = super.getMaxLifetime(); + log.debug("getMaxLifetime() = {}", result); + return result; + } + + @Override + public void setMaxLifetime(long maxLifetimeMs) { + log.debug("setMaxLifetime({})", maxLifetimeMs); + super.setMaxLifetime(maxLifetimeMs); + } + + @Override + public String getConnectionTestQuery() { + final String result = super.getConnectionTestQuery(); + log.debug("getConnectionTestQuery() = {}", result); + return result; + } + + @Override + public void setConnectionTestQuery(String connectionTestQuery) { + log.debug("setConnectionTestQuery({})", connectionTestQuery); + super.setConnectionTestQuery(connectionTestQuery); + } + + @Override + public long getInitializationFailTimeout() { + final long result = super.getInitializationFailTimeout(); + log.debug("getInitializationFailTimeout() = {}", result); + return result; + } + + @Override + public void setInitializationFailTimeout(long initializationFailTimeout) { + log.debug("setInitializationFailTimeout({})", initializationFailTimeout); + super.setInitializationFailTimeout(initializationFailTimeout); + } + + @Override + public boolean isIsolateInternalQueries() { + final boolean result = super.isIsolateInternalQueries(); + log.debug("isIsolateInternalQueries() = {}", result); + return result; + } + + @Override + public void setIsolateInternalQueries(boolean isolate) { + log.debug("setIsolateInternalQueries({})", isolate); + super.setIsolateInternalQueries(isolate); + } + + @Override + public boolean isAllowPoolSuspension() { + final boolean result = super.isAllowPoolSuspension(); + log.debug("isAllowPoolSuspension() = {}", result); + return result; + } + + @Override + public void setAllowPoolSuspension(boolean isAllowPoolSuspension) { + log.debug("setAllowPoolSuspension({})", isAllowPoolSuspension); + super.setAllowPoolSuspension(isAllowPoolSuspension); + } + + @Override + public boolean isReadOnly() { + final boolean result = super.isReadOnly(); + log.debug("isReadOnly() = {}", result); + return result; + } + + @Override + public void setReadOnly(boolean readOnly) { + log.debug("setReadOnly({})", readOnly); + super.setReadOnly(readOnly); + } + + @Override + public boolean isRegisterMbeans() { + final boolean result = super.isRegisterMbeans(); + log.debug("isRegisterMbeans() = {}", result); + return result; + } + + @Override + public void setRegisterMbeans(boolean register) { + log.debug("setRegisterMbeans({})", register); + super.setRegisterMbeans(register); + } + + @Override + public long getValidationTimeout() { + final long result = super.getValidationTimeout(); + log.debug("getValidationTimeout() = {}", result); + return result; + } + + @Override + public void setValidationTimeout(long validationTimeoutMs) { + log.debug("setValidationTimeout({})", validationTimeoutMs); + super.setValidationTimeout(validationTimeoutMs); + } + + @Override + public long getLeakDetectionThreshold() { + final long result = super.getLeakDetectionThreshold(); + log.debug("getLeakDetectionThreshold() = {}", result); + return result; + } + + @Override + public void setLeakDetectionThreshold(long leakDetectionThreshold) { + log.debug("setLeakDetectionThreshold({})", leakDetectionThreshold); + super.setLeakDetectionThreshold(leakDetectionThreshold); + } } diff --git a/jdbc/smart-pool-data-source/src/main/java/com/paulissoft/pato/jdbc/SimplePoolDataSourceOracle.java b/jdbc/smart-pool-data-source/src/main/java/com/paulissoft/pato/jdbc/SimplePoolDataSourceOracle.java index a14cb47a..8b55f3ac 100644 --- a/jdbc/smart-pool-data-source/src/main/java/com/paulissoft/pato/jdbc/SimplePoolDataSourceOracle.java +++ b/jdbc/smart-pool-data-source/src/main/java/com/paulissoft/pato/jdbc/SimplePoolDataSourceOracle.java @@ -1,26 +1,12 @@ package com.paulissoft.pato.jdbc; -import java.sql.Connection; -import java.util.Properties; -import java.util.Hashtable; -import java.io.PrintWriter; -import javax.naming.Name; -import javax.naming.Reference; -import javax.naming.Context; -// import java.util.logging.Logger; - import java.sql.SQLException; import lombok.extern.slf4j.Slf4j; -import oracle.ucp.ConnectionAffinityCallback; -import oracle.ucp.ConnectionLabelingCallback; import oracle.ucp.UniversalConnectionPool; import oracle.ucp.UniversalConnectionPoolException; import oracle.ucp.admin.UniversalConnectionPoolManager; import oracle.ucp.admin.UniversalConnectionPoolManagerImpl; -import oracle.ucp.jdbc.ConnectionInitializationCallback; -import oracle.ucp.jdbc.JDBCConnectionPoolStatistics; import oracle.ucp.jdbc.PoolDataSourceImpl; -import oracle.ucp.jdbc.UCPConnectionBuilder; @Slf4j public class SimplePoolDataSourceOracle @@ -290,760 +276,219 @@ public String toString() { /**/ /* Class PoolDataSourceImpl */ - @Override - public UCPConnectionBuilder createConnectionBuilder() { - final UCPConnectionBuilder result = super.createConnectionBuilder(); - log.trace("createConnectionBuilder() = {}", result); - return result; - } - - @Override - protected void createPoolWithDefaultProperties() throws SQLException { - log.trace("createPoolWithDefaultProperties()"); - super.createPoolWithDefaultProperties(); - } - @Override public int getAbandonedConnectionTimeout() { final int result = super.getAbandonedConnectionTimeout(); - log.trace("getAbandonedConnectionTimeout() = {}", result); - return result; - } - - @Override - public int getAvailableConnectionsCount() { - final int result = super.getAvailableConnectionsCount(); - log.trace("getAvailableConnectionsCount() = {}", result); + log.debug("getAbandonedConnectionTimeout() = {}", result); return result; } @Override - public int getBorrowedConnectionsCount() { - final int result = super.getBorrowedConnectionsCount(); - log.trace("getBorrowedConnectionsCount() = {}", result); - return result; - } - - @Override - public Connection getConnection() throws SQLException { - final Connection result = super.getConnection(); - log.trace("getConnection() = {}", result); - return result; - } - - @Override - public Connection getConnection(Properties labels) throws SQLException { - final Connection result = super.getConnection(labels); - log.trace("getConnection(labels) = {}", result); - return result; - } - - @Override - public Connection getConnection(String username, String password) throws SQLException { - final Connection result = super.getConnection(username, password); - log.trace("getConnection(username, password) = {}", result); - return result; - } - - @Override - public Connection getConnection(String username, String password, Properties labels) throws SQLException { - final Connection result = super.getConnection(username, password, labels); - log.trace("getConnection(username, password, labels) = {}", result); - return result; + public void setAbandonedConnectionTimeout(int abandonedConnectionTimeout) throws SQLException { + log.debug("setAbandonedConnectionTimeout({})", abandonedConnectionTimeout); + super.setAbandonedConnectionTimeout(abandonedConnectionTimeout); } @Override public String getConnectionFactoryClassName() { final String result = super.getConnectionFactoryClassName(); - log.trace("getConnectionFactoryClassName() = {}", result); - return result; - } - - @Override - public Properties getConnectionFactoryProperties() { - final Properties result = super.getConnectionFactoryProperties(); - log.trace("getConnectionFactoryProperties() = {}", result); - return result; - } - - @Override - public String getConnectionFactoryProperty(String propertyName) { - final String result = super.getConnectionFactoryProperty(propertyName); - log.trace("getConnectionFactoryProperty(propertyName) = {}", result); - return result; - } - - @Override - public int getConnectionHarvestMaxCount() { - final int result = super.getConnectionHarvestMaxCount(); - log.trace("getConnectionHarvestMaxCount() = {}", result); + log.debug("getConnectionFactoryClassName() = {}", result); return result; } @Override - public int getConnectionHarvestTriggerCount() { - final int result = super.getConnectionHarvestTriggerCount(); - log.trace("getConnectionHarvestTriggerCount() = {}", result); - return result; - } - - @Override - public ConnectionInitializationCallback getConnectionInitializationCallback() { - final ConnectionInitializationCallback result = super.getConnectionInitializationCallback(); - log.trace("getConnectionInitializationCallback() = {}", result); - return result; - } - - @Override - public int getConnectionLabelingHighCost() { - final int result = super.getConnectionLabelingHighCost(); - log.trace("getConnectionLabelingHighCost() = {}", result); - return result; + public void setConnectionFactoryClassName(String factoryClassName) throws SQLException { + log.debug("setConnectionFactoryClassName({})", factoryClassName); + super.setConnectionFactoryClassName(factoryClassName); } @Override public String getConnectionPoolName() { final String result = super.getConnectionPoolName(); - log.trace("getConnectionPoolName() = {}", result); - return result; - } - - @Override - public Properties getConnectionProperties() { - final Properties result = super.getConnectionProperties(); - log.trace("getConnectionProperties() = {}", result); - return result; - } - - @Override - public String getConnectionProperty(String propertyName) { - final String result = super.getConnectionProperty(propertyName); - log.trace("getConnectionProperty(propertyName) = {}", result); + log.debug("getConnectionPoolName() = {}", result); return result; } @Override - public int getConnectionRepurposeThreshold() { - final int result = super.getConnectionRepurposeThreshold(); - log.trace("getConnectionRepurposeThreshold() = {}", result); - return result; + public void setConnectionPoolName(String connectionPoolName) throws SQLException { + log.debug("setConnectionPoolName({})", connectionPoolName); + super.setConnectionPoolName(connectionPoolName); } @Override public int getConnectionValidationTimeout() { final int result = super.getConnectionValidationTimeout(); - log.trace("getConnectionValidationTimeout() = {}", result); - return result; - } - - @Override - public int getConnectionWaitTimeout() { - final int result = super.getConnectionWaitTimeout(); - log.trace("getConnectionWaitTimeout() = {}", result); - return result; - } - - @Override - public String getDatabaseName() { - final String result = super.getDatabaseName(); - log.trace("getDatabaseName() = {}", result); - return result; - } - - @Override - public String getDataSourceName() { - final String result = super.getDataSourceName(); - log.trace("getDataSourceName() = {}", result); + log.debug("getConnectionValidationTimeout() = {}", result); return result; } @Override - public String getDescription() { - final String result = super.getDescription(); - log.trace("getDescription() = {}", result); - return result; + public void setConnectionValidationTimeout(int connectionValidationTimeout) throws SQLException { + log.debug("setConnectionValidationTimeout({})", connectionValidationTimeout); + super.setConnectionValidationTimeout(connectionValidationTimeout); } @Override - public boolean getFastConnectionFailoverEnabled() { - final boolean result = super.getFastConnectionFailoverEnabled(); - log.trace("getFastConnectionFailoverEnabled() = {}", result); + public int getConnectionWaitTimeout() { + final int result = super.getConnectionWaitTimeout(); + log.debug("getConnectionWaitTimeout() = {}", result); return result; } @Override - public int getHighCostConnectionReuseThreshold() { - final int result = super.getHighCostConnectionReuseThreshold(); - log.trace("getHighCostConnectionReuseThreshold() = {}", result); - return result; + public void setConnectionWaitTimeout(int waitTimeout) throws SQLException { + log.debug("setConnectionWaitTimeout({})", waitTimeout); + super.setConnectionWaitTimeout(waitTimeout); } @Override public int getInactiveConnectionTimeout() { final int result = super.getInactiveConnectionTimeout(); - log.trace("getInactiveConnectionTimeout() = {}", result); - return result; - } - - @Override - public int getInitialPoolSize() { - final int result = super.getInitialPoolSize(); - log.trace("getInitialPoolSize() = {}", result); + log.debug("getInactiveConnectionTimeout() = {}", result); return result; } @Override - public int getLoginTimeout() { - final int result = super.getLoginTimeout(); - log.trace("getLoginTimeout() = {}", result); - return result; + public void setInactiveConnectionTimeout(int inactivityTimeout) throws SQLException { + log.debug("setInactiveConnectionTimeout({})", inactivityTimeout); + super.setInactiveConnectionTimeout(inactivityTimeout); } @Override - public PrintWriter getLogWriter() throws SQLException { - final PrintWriter result = super.getLogWriter(); - log.trace("getLogWriter() = {}", result); + public int getInitialPoolSize() { + final int result = super.getInitialPoolSize(); + log.debug("getInitialPoolSize() = {}", result); return result; } @Override - public int getMaxConnectionReuseCount() { - final int result = super.getMaxConnectionReuseCount(); - log.trace("getMaxConnectionReuseCount() = {}", result); - return result; + public void setInitialPoolSize(int initialPoolSize) throws SQLException { + log.debug("setInitialPoolSize({})", initialPoolSize); + super.setInitialPoolSize(initialPoolSize); } @Override public long getMaxConnectionReuseTime() { final long result = super.getMaxConnectionReuseTime(); - log.trace("getMaxConnectionReuseTime() = {}", result); - return result; - } - - @Override - public int getMaxConnectionsPerService() { - final int result = super.getMaxConnectionsPerService(); - log.trace("getMaxConnectionsPerService() = {}", result); - return result; - } - - @Override - public int getMaxConnectionsPerShard() { - final int result = super.getMaxConnectionsPerShard(); - log.trace("getMaxConnectionsPerShard() = {}", result); + log.debug("getMaxConnectionReuseTime() = {}", result); return result; } @Override - public int getMaxIdleTime() { - final int result = super.getMaxIdleTime(); - log.trace("getMaxIdleTime() = {}", result); - return result; + public void setMaxConnectionReuseTime(long maxConnectionReuseTime) throws SQLException { + log.debug("setMaxConnectionReuseTime({})", maxConnectionReuseTime); + super.setMaxConnectionReuseTime(maxConnectionReuseTime); } @Override public int getMaxPoolSize() { final int result = super.getMaxPoolSize(); - log.trace("getMaxPoolSize() = {}", result); - return result; - } - - @Override - public int getMaxStatements() { - final int result = super.getMaxStatements(); - log.trace("getMaxStatements() = {}", result); - return result; - } - - @Override - public int getMinPoolSize() { - final int result = super.getMinPoolSize(); - log.trace("getMinPoolSize() = {}", result); - return result; - } - - @Override - public String getNetworkProtocol() { - final String result = super.getNetworkProtocol(); - log.trace("getNetworkProtocol() = {}", result); - return result; - } - - @Override - public Object getObjectInstance(Object refObj, - Name name, - Context nameCtx, - Hashtable env) throws Exception { - final Object result = super.getObjectInstance(refObj, name, nameCtx, env); - log.trace("getObjectInstance(refObj, name, nameCtx, env) = {}", result); - return result; - } - - @Override - public java.util.logging.Logger getParentLogger() { - final java.util.logging.Logger result = super.getParentLogger(); - log.trace("getParentLogger() = {}", result); - return result; - } - - @Override - public Properties getPdbRoles() { - final Properties result = super.getPdbRoles(); - log.trace("getPdbRoles() = {}", result); + log.debug("getMaxPoolSize() = {}", result); return result; } @Override - public int getPortNumber() { - final int result = super.getPortNumber(); - log.trace("getPortNumber() = {}", result); - return result; + public void setMaxPoolSize(int maxPoolSize) throws SQLException { + log.debug("setMaxPoolSize({})", maxPoolSize); + super.setMaxPoolSize(maxPoolSize); } @Override - public int getPropertyCycle() { - final int result = super.getPropertyCycle(); - log.trace("getPropertyCycle() = {}", result); + public int getMaxStatements() { + final int result = super.getMaxStatements(); + log.debug("getMaxStatements() = {}", result); return result; } @Override - public int getQueryTimeout() { - final int result = super.getQueryTimeout(); - log.trace("getQueryTimeout() = {}", result); - return result; + public void setMaxStatements(int maxStatements) throws SQLException { + log.debug("setMaxStatements({})", maxStatements); + super.setMaxStatements(maxStatements); } @Override - public Reference getReference() { - final Reference result = super.getReference(); - log.trace("getReference() = {}", result); + public int getMinPoolSize() { + final int result = super.getMinPoolSize(); + log.debug("getMinPoolSize() = {}", result); return result; } @Override - public String getRoleName() { - final String result = super.getRoleName(); - log.trace("getRoleName() = {}", result); - return result; + public void setMinPoolSize(int minPoolSize) throws SQLException { + log.debug("setMinPoolSize({})", minPoolSize); + super.setMinPoolSize(minPoolSize); } @Override public int getSecondsToTrustIdleConnection() { final int result = super.getSecondsToTrustIdleConnection(); - log.trace("getSecondsToTrustIdleConnection() = {}", result); - return result; - } - - @Override - public String getServerName() { - final String result = super.getServerName(); - log.trace("getServerName() = {}", result); - return result; - } - - @Override - public String getServiceName() { - final String result = super.getServiceName(); - log.trace("getServiceName() = {}", result); - return result; - } - - @Override - public boolean getShardingMode() { - final boolean result = super.getShardingMode(); - log.trace("getShardingMode() = {}", result); - return result; - } - - @Override - public String getSQLForValidateConnection() { - final String result = super.getSQLForValidateConnection(); - log.trace("getSQLForValidateConnection() = {}", result); + log.debug("getSecondsToTrustIdleConnection() = {}", result); return result; } @Override - protected javax.net.ssl.SSLContext getSSLContext() { - final javax.net.ssl.SSLContext result = super.getSSLContext(); - log.trace("getSSLContext()"); - return result; + public void setSecondsToTrustIdleConnection(int secondsToTrustIdleConnection) throws SQLException { + log.debug("setSecondsToTrustIdleConnection({})", secondsToTrustIdleConnection); + super.setSecondsToTrustIdleConnection(secondsToTrustIdleConnection); } @Override - public JDBCConnectionPoolStatistics getStatistics() { - log.trace("getStatistics()"); - return super.getStatistics(); + public void setTimeoutCheckInterval(int timeInterval) throws SQLException { + log.debug("setTimeoutCheckInterval({})", timeInterval); + super.setTimeoutCheckInterval(timeInterval); } @Override public int getTimeoutCheckInterval() { - log.trace("getTimeoutCheckInterval()"); + log.debug("getTimeoutCheckInterval()"); return super.getTimeoutCheckInterval(); } @Override public int getTimeToLiveConnectionTimeout() { - log.trace("getTimeToLiveConnectionTimeout()"); + log.debug("getTimeToLiveConnectionTimeout()"); return super.getTimeToLiveConnectionTimeout(); } @Override - public String getURL() { - log.trace("getURL()"); - return super.getURL(); - } - - @Override - public String getUser() { - log.trace("getUser()"); - return super.getUser(); - } - - @Override - public boolean getValidateConnectionOnBorrow() { - log.trace("getValidateConnectionOnBorrow()"); - return super.getValidateConnectionOnBorrow(); - } - - @Override - public boolean isReadOnlyInstanceAllowed() { - final boolean result = super.isReadOnlyInstanceAllowed(); - log.trace("isReadOnlyInstanceAllowed() = {}", result); - return result; - } - - public static boolean isSetOnceProperty(String key) { - return PoolDataSourceImpl.isSetOnceProperty(key); - } - - @Override - public boolean isWrapperFor(Class iface) throws SQLException { - final boolean result = super.isWrapperFor(iface); - log.trace("isWrapperFor(iface) = {}", result); - return result; - } - - @Override - public void reconfigureDataSource(Properties configuration) throws SQLException { - log.trace("reconfigureDataSource(configuration)"); - super.reconfigureDataSource(configuration); - } - - @Override - public void registerConnectionAffinityCallback(ConnectionAffinityCallback cbk) throws SQLException { - log.trace("registerConnectionAffinityCallback(cbk)"); - super.registerConnectionAffinityCallback(cbk); - } - - @Override - public void registerConnectionInitializationCallback(ConnectionInitializationCallback cbk) throws SQLException { - log.trace("registerConnectionInitializationCallback(cbk)"); - super.registerConnectionInitializationCallback(cbk); - } - - @Override - public void registerConnectionLabelingCallback(ConnectionLabelingCallback cbk) throws SQLException { - log.trace("registerConnectionLabelingCallback(cbk)"); - super.registerConnectionLabelingCallback(cbk); - } - - @Override - public void removeConnectionAffinityCallback() throws SQLException { - log.trace("removeConnectionAffinityCallback()"); - super.removeConnectionAffinityCallback(); - } - - @Override - public void removeConnectionLabelingCallback() throws SQLException { - log.trace("removeConnectionLabelingCallback()"); - super.removeConnectionLabelingCallback(); - } - - @Override - public void setAbandonedConnectionTimeout(int abandonedConnectionTimeout) throws SQLException { - log.trace("setAbandonedConnectionTimeout({})", abandonedConnectionTimeout); - super.setAbandonedConnectionTimeout(abandonedConnectionTimeout); - } - - @Override - public void setConnectionFactoryClassName(String factoryClassName) throws SQLException { - log.trace("setConnectionFactoryClassName({})", factoryClassName); - super.setConnectionFactoryClassName(factoryClassName); - } - - @Override - public void setConnectionFactoryProperties(Properties factoryProperties) throws SQLException { - log.trace("setConnectionFactoryProperties({})", factoryProperties); - super.setConnectionFactoryProperties(factoryProperties); - } - - @Override - public void setConnectionFactoryProperty(String name, String value) throws SQLException { - log.trace("setConnectionFactoryProperty({}, {})", name, value); - super.setConnectionFactoryProperty(name, value); - } - - @Override - public void setConnectionHarvestMaxCount(int connectionHarvestMaxCount) throws SQLException { - log.trace("setConnectionHarvestMaxCount({})", connectionHarvestMaxCount); - super.setConnectionHarvestMaxCount(connectionHarvestMaxCount); - } - - @Override - public void setConnectionHarvestTriggerCount(int connectionHarvestTriggerCount) throws SQLException { - log.trace("setConnectionHarvestTriggerCount({})", connectionHarvestTriggerCount); - super.setConnectionHarvestTriggerCount(connectionHarvestTriggerCount); - } - - @Override - public void setConnectionLabelingHighCost(int highCost) throws SQLException { - log.trace("setConnectionLabelingHighCost()", highCost); - super.setConnectionLabelingHighCost(highCost); - } - - @Override - public void setConnectionPoolName(String connectionPoolName) throws SQLException { - log.trace("setConnectionPoolName({})", connectionPoolName); - super.setConnectionPoolName(connectionPoolName); - } - - @Override - public void setConnectionProperties(Properties connectionProperties) throws SQLException { - log.trace("setConnectionProperties({})", connectionProperties); - super.setConnectionProperties(connectionProperties); - } - - @Override - public void setConnectionProperty(String name, String value) throws SQLException { - log.trace("setConnectionProperty({}, {})", name, value); - super.setConnectionProperty(name, value); - } - - @Override - public void setConnectionRepurposeThreshold(int threshold) throws SQLException { - log.trace("setConnectionRepurposeThreshold({})", threshold); - super.setConnectionRepurposeThreshold(threshold); - } - - @Override - public void setConnectionValidationTimeout(int connectionValidationTimeout) throws SQLException { - log.trace("setConnectionValidationTimeout({})", connectionValidationTimeout); - super.setConnectionValidationTimeout(connectionValidationTimeout); - } - - @Override - public void setConnectionWaitTimeout(int waitTimeout) throws SQLException { - log.trace("setConnectionWaitTimeout({})", waitTimeout); - super.setConnectionWaitTimeout(waitTimeout); - } - - @Override - public void setDatabaseName(String databaseName) throws SQLException { - log.trace("setDatabaseName({})", databaseName); - super.setDatabaseName(databaseName); - } - - @Override - public void setDataSourceName(String dataSourceName) throws SQLException { - log.trace("setDataSourceName({})", dataSourceName); - super.setDataSourceName(dataSourceName); - } - - @Override - public void setDescription(String dataSourceDescription) throws SQLException { - log.trace("setDescription({})", dataSourceDescription); - super.setDescription(dataSourceDescription); - } - - @Override - public void setFastConnectionFailoverEnabled(boolean failoverEnabled) throws SQLException { - log.trace("setFastConnectionFailoverEnabled({})", failoverEnabled); - super.setFastConnectionFailoverEnabled(failoverEnabled); - } - - @Override - public void setHighCostConnectionReuseThreshold(int threshold) throws SQLException { - log.trace("setHighCostConnectionReuseThreshold({})", threshold); - super.setHighCostConnectionReuseThreshold(threshold); - } - - @Override - public void setInactiveConnectionTimeout(int inactivityTimeout) throws SQLException { - log.trace("setInactiveConnectionTimeout({})", inactivityTimeout); - super.setInactiveConnectionTimeout(inactivityTimeout); - } - - @Override - public void setInitialPoolSize(int initialPoolSize) throws SQLException { - log.trace("setInitialPoolSize({})", initialPoolSize); - super.setInitialPoolSize(initialPoolSize); - } - - @Override - public void setLoginTimeout(int seconds) throws SQLException { - log.trace("setLoginTimeout({})", seconds); - super.setLoginTimeout(seconds); - } - - @Override - public void setLogWriter(PrintWriter logWriter) throws SQLException { - log.trace("setLogWriter({})", logWriter); - super.setLogWriter(logWriter); - } - - @Override - public void setMaxConnectionReuseCount(int maxConnectionReuseCount) throws SQLException { - log.trace("setMaxConnectionReuseCount({})", maxConnectionReuseCount); - super.setMaxConnectionReuseCount(maxConnectionReuseCount); - } - - @Override - public void setMaxConnectionReuseTime(long maxConnectionReuseTime) throws SQLException { - log.trace("setMaxConnectionReuseTime({})", maxConnectionReuseTime); - super.setMaxConnectionReuseTime(maxConnectionReuseTime); - } - - @Override - public void setMaxConnectionsPerShard(int maxConnectionsPerShard) throws SQLException { - log.trace("setMaxConnectionsPerShard({})", maxConnectionsPerShard); - super.setMaxConnectionsPerShard(maxConnectionsPerShard); - } - - @Override - public void setMaxIdleTime(int idleTime) throws SQLException { - log.trace("setMaxIdleTime({})", idleTime); - super.setMaxIdleTime(idleTime); - } - - @Override - public void setMaxPoolSize(int maxPoolSize) throws SQLException { - log.trace("setMaxPoolSize({})", maxPoolSize); - super.setMaxPoolSize(maxPoolSize); - } - - @Override - public void setMaxStatements(int maxStatements) throws SQLException { - log.trace("setMaxStatements({})", maxStatements); - super.setMaxStatements(maxStatements); - } - - @Override - public void setMinPoolSize(int minPoolSize) throws SQLException { - log.trace("setMinPoolSize({})", minPoolSize); - super.setMinPoolSize(minPoolSize); - } - - @Override - public void setNetworkProtocol(String networkProtocol) throws SQLException { - log.trace("setNetworkProtocol({})", networkProtocol); - super.setNetworkProtocol(networkProtocol); - } - - @Override - public void setONSConfiguration(String onsConfigStr) { - log.trace("setONSConfiguration({})", onsConfigStr); - super.setONSConfiguration(onsConfigStr); - } - - @Override - public void setPassword(String password) throws SQLException { - super.setPassword(password); - } - - @Override - public void setPortNumber(int portNumber) throws SQLException { - log.trace("setPortNumber({})", portNumber); - super.setPortNumber(portNumber); - } - - @Override - public void setPropertyCycle(int propertyCycle) throws SQLException { - log.trace("setPropertyCycle({})", propertyCycle); - super.setPropertyCycle(propertyCycle); - } - - @Override - public void setQueryTimeout(int queryTimeout) throws SQLException { - log.trace("setQueryTimeout({})", queryTimeout); - super.setQueryTimeout(queryTimeout); - } - - @Override - public void setReadOnlyInstanceAllowed(boolean readOnlyInstanceAllowed) throws SQLException { - log.trace("setReadOnlyInstanceAllowed({})", readOnlyInstanceAllowed); - super.setReadOnlyInstanceAllowed(readOnlyInstanceAllowed); - } - - @Override - public void setRoleName(String roleName) throws SQLException { - log.trace("setRoleName({})", roleName); - super.setRoleName(roleName); - } - - @Override - public void setSecondsToTrustIdleConnection(int secondsToTrustIdleConnection) throws SQLException { - log.trace("setSecondsToTrustIdleConnection({})", secondsToTrustIdleConnection); - super.setSecondsToTrustIdleConnection(secondsToTrustIdleConnection); - } - - @Override - public void setServerName(String serverName) throws SQLException { - log.trace("setServerName({})", serverName); - super.setServerName(serverName); - } - - @Override - public void setShardingMode(boolean shardingMode) throws SQLException { - log.trace("setShardingMode({})", shardingMode); - super.setShardingMode(shardingMode); - } - - @Override - public void setSQLForValidateConnection(String SQLString) throws SQLException { - log.trace("setSQLForValidateConnection({})", SQLString); - super.setSQLForValidateConnection(SQLString); - } - - @Override - public void setSSLContext(javax.net.ssl.SSLContext sslContext) { - log.trace("setSSLContext({})", sslContext); - super.setSSLContext(sslContext); + public void setTimeToLiveConnectionTimeout(int timeToLiveConnectionTimeout) throws SQLException { + log.debug("setTimeToLiveConnectionTimeout({})", timeToLiveConnectionTimeout); + super.setTimeToLiveConnectionTimeout(timeToLiveConnectionTimeout); } @Override - public void setTimeoutCheckInterval(int timeInterval) throws SQLException { - log.trace("setTimeoutCheckInterval({})", timeInterval); - super.setTimeoutCheckInterval(timeInterval); + public String getURL() { + log.debug("getURL()"); + return super.getURL(); } @Override - public void setTimeToLiveConnectionTimeout(int timeToLiveConnectionTimeout) throws SQLException { - log.trace("setTimeToLiveConnectionTimeout({})", timeToLiveConnectionTimeout); - super.setTimeToLiveConnectionTimeout(timeToLiveConnectionTimeout); + public void setURL(String url) throws SQLException { + log.debug("setURL({})", url); + super.setURL(url); } @Override - public void setURL(String url) throws SQLException { - log.trace("setURL({})", url); - super.setURL(url); + public String getUser() { + log.debug("getUser()"); + return super.getUser(); } @Override public void setUser(String username) throws SQLException { - log.trace("setUser({})", username); + log.debug("setUser({})", username); super.setUser(username); } @Override - public void setValidateConnectionOnBorrow(boolean validateConnectionOnBorrow) throws SQLException { - log.trace("setValidateConnectionOnBorrow({})", validateConnectionOnBorrow); - super.setValidateConnectionOnBorrow(validateConnectionOnBorrow); + public boolean getValidateConnectionOnBorrow() { + log.debug("getValidateConnectionOnBorrow()"); + return super.getValidateConnectionOnBorrow(); } - + @Override - public void startPool() throws SQLException { - log.trace("startPool({})", getConnectionPoolName()); - super.startPool(); + public void setValidateConnectionOnBorrow(boolean validateConnectionOnBorrow) throws SQLException { + log.debug("setValidateConnectionOnBorrow({})", validateConnectionOnBorrow); + super.setValidateConnectionOnBorrow(validateConnectionOnBorrow); } } diff --git a/jdbc/smart-pool-data-source/src/test/resources/application-test.properties b/jdbc/smart-pool-data-source/src/test/resources/application-test.properties index aa156f3b..8777221a 100644 --- a/jdbc/smart-pool-data-source/src/test/resources/application-test.properties +++ b/jdbc/smart-pool-data-source/src/test/resources/application-test.properties @@ -1,3 +1,16 @@ +## ======= +## logging +## ======= +## logging.level.org.hibernate.type=trace +#logging.level.root=INFO +#logging.level.com.paulissoft.pato.jdbc=DEBUG +#logging.level.com.paulissoft.pato.jdbc.SimplePoolDataSourceHikari=TRACE +#logging.level.com.paulissoft.pato.jdbc.SimplePoolDataSourceOracle=TRACE +# +## https://stackoverflow.com/questions/60757590/logging-hikaricp-spring-boot +#logging.level.com.zaxxer.hikari.HikariConfig=DEBUG +#logging.level.com.zaxxer.hikari=TRACE + # === # Database Config # === From c1dee7abc5cd5fe3f3ee21b04c5fbd640a144d2a Mon Sep 17 00:00:00 2001 From: Gert-Jan Paulissen Date: Wed, 15 May 2024 14:15:14 +0200 Subject: [PATCH 05/11] Update PoolDataSourceStatistics.java --- .../pato/jdbc/PoolDataSourceStatistics.java | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/jdbc/smart-pool-data-source/src/main/java/com/paulissoft/pato/jdbc/PoolDataSourceStatistics.java b/jdbc/smart-pool-data-source/src/main/java/com/paulissoft/pato/jdbc/PoolDataSourceStatistics.java index 26c664af..810c961a 100644 --- a/jdbc/smart-pool-data-source/src/main/java/com/paulissoft/pato/jdbc/PoolDataSourceStatistics.java +++ b/jdbc/smart-pool-data-source/src/main/java/com/paulissoft/pato/jdbc/PoolDataSourceStatistics.java @@ -220,7 +220,7 @@ boolean isClosed() { boolean result = true; if (!isUpdateable.get()) { - result = false; + result = true; } else if (isClosedSupplier != null) { result = isClosedSupplier.get(); } else if (children != null) { @@ -233,6 +233,8 @@ boolean isClosed() { } } + logger.debug("isClosed(): {}", result); + return result; } @@ -416,7 +418,7 @@ private boolean mustShowTotals() { } public void close() throws Exception { - logger.debug(">close()"); + logger.info("{} - Close initiated...", getDescription()); try { if (isUpdateable.get()) { @@ -426,18 +428,19 @@ public void close() throws Exception { isUpdateable.set(false); } } finally { - logger.debug(" Date: Wed, 15 May 2024 19:43:55 +0200 Subject: [PATCH 06/11] Setting pool description --- .../pato/jdbc/CombiPoolDataSourceHikari.java | 29 ++++++---- .../pato/jdbc/CombiPoolDataSourceOracle.java | 57 ++++++++++++++----- .../CheckConfigurationOracleUnitTest.java | 4 +- 3 files changed, 65 insertions(+), 25 deletions(-) diff --git a/jdbc/smart-pool-data-source/src/main/java/com/paulissoft/pato/jdbc/CombiPoolDataSourceHikari.java b/jdbc/smart-pool-data-source/src/main/java/com/paulissoft/pato/jdbc/CombiPoolDataSourceHikari.java index 8aee8a61..4e2b55d5 100644 --- a/jdbc/smart-pool-data-source/src/main/java/com/paulissoft/pato/jdbc/CombiPoolDataSourceHikari.java +++ b/jdbc/smart-pool-data-source/src/main/java/com/paulissoft/pato/jdbc/CombiPoolDataSourceHikari.java @@ -3,6 +3,8 @@ import com.zaxxer.hikari.HikariConfig; import java.sql.Connection; import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Arrays; import lombok.NonNull; import lombok.experimental.Delegate; import lombok.extern.slf4j.Slf4j; @@ -295,21 +297,28 @@ private void updatePoolDescription(@NonNull final PoolDataSourceConfigurationHik poolDataSource.getPoolName(), poolDataSource); - final String suffix = "-" + getPoolDataSourceConfiguration().getSchema(); + final ArrayList items = new ArrayList(Arrays.asList(poolDataSource.getPoolName().split("-"))); + final String schema = getPoolDataSourceConfiguration().getSchema(); + + log.debug("items: {}; schema: {}", items, schema); - // set pool name if (initializing) { - if (poolDataSource.getPoolName() == null || - !poolDataSource.getPoolName().startsWith(getPoolNamePrefix() + "-")) { - poolDataSource.setPoolName(getPoolNamePrefix() + suffix); - } else if (!isParentPoolDataSource) { - poolDataSource.setPoolName(poolDataSource.getPoolName() + suffix); + if (isParentPoolDataSource) { + items.clear(); + items.add(getPoolNamePrefix()); + items.add(schema); + } else if (!isParentPoolDataSource && !items.contains(schema)) { + items.add(schema); } - } else if (!isParentPoolDataSource) { - poolDataSource.setPoolName(poolDataSource.getPoolName().replace(suffix, "")); + } else if (!isParentPoolDataSource && items.contains(schema)) { + items.remove(schema); + } + + if (items.size() >= 2) { + poolDataSource.setPoolName(String.join("-", items)); } - // keep poolDataSourceConfiguration in sync + // keep poolDataSource.getPoolName() and poolDataSourceConfiguration.getPoolName() in sync poolDataSourceConfiguration.setPoolName(poolDataSource.getPoolName()); } finally { log.debug("config pool data source; name: {}; address: {}", diff --git a/jdbc/smart-pool-data-source/src/main/java/com/paulissoft/pato/jdbc/CombiPoolDataSourceOracle.java b/jdbc/smart-pool-data-source/src/main/java/com/paulissoft/pato/jdbc/CombiPoolDataSourceOracle.java index 461d389f..287acf6f 100644 --- a/jdbc/smart-pool-data-source/src/main/java/com/paulissoft/pato/jdbc/CombiPoolDataSourceOracle.java +++ b/jdbc/smart-pool-data-source/src/main/java/com/paulissoft/pato/jdbc/CombiPoolDataSourceOracle.java @@ -2,6 +2,8 @@ import java.sql.Connection; import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Arrays; import lombok.NonNull; import lombok.experimental.Delegate; import lombok.extern.slf4j.Slf4j; @@ -179,11 +181,19 @@ public String getPoolNamePrefix() { return this.getClass().getSimpleName(); } + // IMPORTANT + // + // Since the connection pool name can notchange once the pool has started, + // we change the description if we add/remove schemas. public String getPoolDescription() { - final SimplePoolDataSourceOracle poolDataSource = getPoolDataSource(); - final String description = poolDataSource.getDescription(); + return getPoolDescription(getPoolDataSource()); + } - return poolDataSource.getConnectionPoolName() + description != null ? description : ""; + private static String getPoolDescription(@NonNull final SimplePoolDataSourceOracle poolDataSource) { + final String poolName = poolDataSource.getConnectionPoolName(); + final String description = poolDataSource.getDescription(); + + return (poolName != null ? poolName : "") + (description != null ? description : ""); } @Override @@ -200,23 +210,42 @@ protected void updatePoolDescription(@NonNull final PoolDataSourceConfigurationO poolDataSource.getConnectionPoolName(), poolDataSource); - // set pool name - final String suffix = "-" + getPoolDataSourceConfiguration().getSchema(); + // IMPORTANT + // + // Since the connection pool name can notchange once the pool has started, + // we change the description if we add/remove schemas. + final String poolDescription = getPoolDescription(poolDataSource); + final ArrayList items = new ArrayList(Arrays.asList(poolDescription.split("-"))); // use pool description not just name + final String schema = getPoolDataSourceConfiguration().getSchema(); + + log.debug("items: {}; schema: {}", items, schema); + if (initializing) { - if (poolDataSource.getConnectionPoolName() == null || - !poolDataSource.getConnectionPoolName().startsWith(getPoolNamePrefix() + "-")) { - poolDataSource.setConnectionPoolName(getPoolNamePrefix() + suffix); + if (isParentPoolDataSource) { + items.clear(); + items.add(getPoolNamePrefix()); + items.add(schema); + } else if (!isParentPoolDataSource && !items.contains(schema)) { + items.add(schema); + } + } else if (!isParentPoolDataSource && items.contains(schema)) { + items.remove(schema); + } + + if (items.size() >= 2) { + poolDataSource.setConnectionPoolName(items.get(0) + "-" + items.get(1)); + items.remove(0); + items.remove(0); + if (items.size() >= 1) { + poolDataSource.setDescription(String.join("-", items)); + } else { poolDataSource.setDescription(""); - } else if (!isParentPoolDataSource) { - poolDataSource.setDescription(poolDataSource.getDescription() + suffix); } - } else if (!isParentPoolDataSource) { - poolDataSource.setDescription(poolDataSource.getDescription().replace(suffix, "")); } - // keep poolDataSource in sync with poolDataSourceConfiguration - poolDataSourceConfiguration.setConnectionPoolName(poolDataSource.getConnectionPoolName()); + // keep poolDataSource.getPoolDescription() and poolDataSourceConfiguration.getConnectionPoolName() in sync + poolDataSourceConfiguration.setConnectionPoolName(getPoolDescription(poolDataSource)); } catch (SQLException ex) { throw new RuntimeException(SimplePoolDataSource.exceptionToString(ex)); } finally { diff --git a/jdbc/smart-pool-data-source/src/test/java/com/paulissoft/pato/jdbc/CheckConfigurationOracleUnitTest.java b/jdbc/smart-pool-data-source/src/test/java/com/paulissoft/pato/jdbc/CheckConfigurationOracleUnitTest.java index dbab0c64..815898da 100644 --- a/jdbc/smart-pool-data-source/src/test/java/com/paulissoft/pato/jdbc/CheckConfigurationOracleUnitTest.java +++ b/jdbc/smart-pool-data-source/src/test/java/com/paulissoft/pato/jdbc/CheckConfigurationOracleUnitTest.java @@ -89,7 +89,9 @@ void testPoolDataSource() { final SimplePoolDataSourceOracle simplePoolDataSourceOracle = domainDataSourceOracle.getPoolDataSource(); - assertEquals(domainDataSourceOracle.getPoolNamePrefix() + "-bodomain", + assertEquals(domainDataSourceOracle.isParentPoolDataSource() ? + domainDataSourceOracle.getPoolNamePrefix() + "-bodomain" : + operatorDataSourceOracle.getPoolNamePrefix() + "-boopapij", simplePoolDataSourceOracle.getConnectionPoolName()); assertEquals(0, simplePoolDataSourceOracle.getInitialPoolSize()); assertEquals(2 * 10, simplePoolDataSourceOracle.getMinPoolSize()); From fd6d312e48055e0dc1782bf252ff5d16d8b8769d Mon Sep 17 00:00:00 2001 From: Gert-Jan Paulissen Date: Wed, 15 May 2024 19:49:58 +0200 Subject: [PATCH 07/11] Update CombiPoolDataSourceOracle.java --- .../com/paulissoft/pato/jdbc/CombiPoolDataSourceOracle.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jdbc/smart-pool-data-source/src/main/java/com/paulissoft/pato/jdbc/CombiPoolDataSourceOracle.java b/jdbc/smart-pool-data-source/src/main/java/com/paulissoft/pato/jdbc/CombiPoolDataSourceOracle.java index 287acf6f..5b4cf56d 100644 --- a/jdbc/smart-pool-data-source/src/main/java/com/paulissoft/pato/jdbc/CombiPoolDataSourceOracle.java +++ b/jdbc/smart-pool-data-source/src/main/java/com/paulissoft/pato/jdbc/CombiPoolDataSourceOracle.java @@ -193,7 +193,7 @@ private static String getPoolDescription(@NonNull final SimplePoolDataSourceOrac final String poolName = poolDataSource.getConnectionPoolName(); final String description = poolDataSource.getDescription(); - return (poolName != null ? poolName : "") + (description != null ? description : ""); + return (poolName == null ? "" : poolName + (description != null ? "-" + description : "")); } @Override From 40c320deb2cb69a110be3da613e39b61b9e5032c Mon Sep 17 00:00:00 2001 From: Gert-Jan Paulissen Date: Wed, 15 May 2024 21:27:40 +0200 Subject: [PATCH 08/11] Testing configuration pool name. --- .../pato/jdbc/CombiPoolDataSourceHikari.java | 8 ++++++-- .../pato/jdbc/CombiPoolDataSourceOracle.java | 15 +++++++++++---- .../jdbc/CheckConfigurationHikariUnitTest.java | 8 ++------ .../jdbc/CheckConfigurationOracleUnitTest.java | 9 ++------- 4 files changed, 21 insertions(+), 19 deletions(-) diff --git a/jdbc/smart-pool-data-source/src/main/java/com/paulissoft/pato/jdbc/CombiPoolDataSourceHikari.java b/jdbc/smart-pool-data-source/src/main/java/com/paulissoft/pato/jdbc/CombiPoolDataSourceHikari.java index 4e2b55d5..fc81936c 100644 --- a/jdbc/smart-pool-data-source/src/main/java/com/paulissoft/pato/jdbc/CombiPoolDataSourceHikari.java +++ b/jdbc/smart-pool-data-source/src/main/java/com/paulissoft/pato/jdbc/CombiPoolDataSourceHikari.java @@ -318,8 +318,12 @@ private void updatePoolDescription(@NonNull final PoolDataSourceConfigurationHik poolDataSource.setPoolName(String.join("-", items)); } - // keep poolDataSource.getPoolName() and poolDataSourceConfiguration.getPoolName() in sync - poolDataSourceConfiguration.setPoolName(poolDataSource.getPoolName()); + if (isParentPoolDataSource) { + // keep poolDataSource.getPoolName() and poolDataSourceConfiguration.getPoolName() in sync + poolDataSourceConfiguration.setPoolName(poolDataSource.getPoolName()); + } else { + poolDataSourceConfiguration.setPoolName(getPoolNamePrefix() + "-" + schema); // own prefix + } } finally { log.debug("config pool data source; name: {}; address: {}", poolDataSourceConfiguration.getPoolName(), diff --git a/jdbc/smart-pool-data-source/src/main/java/com/paulissoft/pato/jdbc/CombiPoolDataSourceOracle.java b/jdbc/smart-pool-data-source/src/main/java/com/paulissoft/pato/jdbc/CombiPoolDataSourceOracle.java index 5b4cf56d..ecf8303d 100644 --- a/jdbc/smart-pool-data-source/src/main/java/com/paulissoft/pato/jdbc/CombiPoolDataSourceOracle.java +++ b/jdbc/smart-pool-data-source/src/main/java/com/paulissoft/pato/jdbc/CombiPoolDataSourceOracle.java @@ -193,7 +193,9 @@ private static String getPoolDescription(@NonNull final SimplePoolDataSourceOrac final String poolName = poolDataSource.getConnectionPoolName(); final String description = poolDataSource.getDescription(); - return (poolName == null ? "" : poolName + (description != null ? "-" + description : "")); + return (poolName == null || poolName.isEmpty() ? + "" : + poolName + (description == null || description.isEmpty() ? "" : "-" + description)); } @Override @@ -217,7 +219,8 @@ protected void updatePoolDescription(@NonNull final PoolDataSourceConfigurationO final String poolDescription = getPoolDescription(poolDataSource); final ArrayList items = new ArrayList(Arrays.asList(poolDescription.split("-"))); // use pool description not just name - final String schema = getPoolDataSourceConfiguration().getSchema(); + // final String schema = getPoolDataSourceConfiguration().getSchema(); + final String schema = poolDataSourceConfiguration.getSchema(); log.debug("items: {}; schema: {}", items, schema); @@ -244,8 +247,12 @@ protected void updatePoolDescription(@NonNull final PoolDataSourceConfigurationO } } - // keep poolDataSource.getPoolDescription() and poolDataSourceConfiguration.getConnectionPoolName() in sync - poolDataSourceConfiguration.setConnectionPoolName(getPoolDescription(poolDataSource)); + if (isParentPoolDataSource) { + // keep poolDataSource.getPoolDescription() and poolDataSourceConfiguration.getConnectionPoolName() in sync + poolDataSourceConfiguration.setConnectionPoolName(getPoolDescription(poolDataSource)); + } else { + poolDataSourceConfiguration.setConnectionPoolName(getPoolNamePrefix() + "-" + schema); // own prefix + } } catch (SQLException ex) { throw new RuntimeException(SimplePoolDataSource.exceptionToString(ex)); } finally { diff --git a/jdbc/smart-pool-data-source/src/test/java/com/paulissoft/pato/jdbc/CheckConfigurationHikariUnitTest.java b/jdbc/smart-pool-data-source/src/test/java/com/paulissoft/pato/jdbc/CheckConfigurationHikariUnitTest.java index dd2cd1c6..4942fd87 100644 --- a/jdbc/smart-pool-data-source/src/test/java/com/paulissoft/pato/jdbc/CheckConfigurationHikariUnitTest.java +++ b/jdbc/smart-pool-data-source/src/test/java/com/paulissoft/pato/jdbc/CheckConfigurationHikariUnitTest.java @@ -47,8 +47,7 @@ void testPoolDataSourceConfigurationDomain() { assertEquals(CombiPoolDataSourceHikari.class, poolDataSourceConfiguration.getType()); assertEquals("PoolDataSourceConfigurationHikari(super=PoolDataSourceConfiguration(driverClassName=oracle.jdbc.OracleDriver, " + "url=jdbc:oracle:thin:@//127.0.0.1:1521/freepdb1, username=bodomain, password=bodomain, " + - "type=class com.paulissoft.pato.jdbc.CombiPoolDataSourceHikari), poolName=HikariPool-" + - (domainDataSourceHikari.isParentPoolDataSource() ? "bodomain" : "boopapij-bodomain") + ", " + + "type=class com.paulissoft.pato.jdbc.CombiPoolDataSourceHikari), poolName=HikariPool-bodomain, " + "maximumPoolSize=60, minimumIdle=60, dataSourceClassName=null, autoCommit=true, connectionTimeout=30000, " + "idleTimeout=600000, maxLifetime=1800000, connectionTestQuery=select 1 from dual, initializationFailTimeout=1, " + "isolateInternalQueries=false, allowPoolSuspension=false, readOnly=false, registerMbeans=false, " + @@ -69,10 +68,7 @@ void testPoolDataSourceConfigurationOperator() { assertEquals(CombiPoolDataSourceHikari.class, poolDataSourceConfiguration.getType()); assertEquals("PoolDataSourceConfigurationHikari(super=PoolDataSourceConfiguration(driverClassName=oracle.jdbc.OracleDriver, " + "url=jdbc:oracle:thin:@//127.0.0.1:1521/freepdb1, username=bodomain[boopapij], password=bodomain, " + - "type=class com.paulissoft.pato.jdbc.CombiPoolDataSourceHikari), " + - "poolName=" + (operatorDataSourceHikari.isParentPoolDataSource() ? - operatorDataSourceHikari.getPoolNamePrefix() + "-boopapij-boopapij" : - domainDataSourceHikari.getPoolNamePrefix() + "-bodomain-boopapij") + ", " + + "type=class com.paulissoft.pato.jdbc.CombiPoolDataSourceHikari), poolName=HikariPool-boopapij, " + "maximumPoolSize=60, minimumIdle=60, dataSourceClassName=null, autoCommit=true, connectionTimeout=30000, " + "idleTimeout=600000, maxLifetime=1800000, connectionTestQuery=select 1 from dual, initializationFailTimeout=1, " + "isolateInternalQueries=false, allowPoolSuspension=false, readOnly=false, registerMbeans=false, " + diff --git a/jdbc/smart-pool-data-source/src/test/java/com/paulissoft/pato/jdbc/CheckConfigurationOracleUnitTest.java b/jdbc/smart-pool-data-source/src/test/java/com/paulissoft/pato/jdbc/CheckConfigurationOracleUnitTest.java index 815898da..11cd99ee 100644 --- a/jdbc/smart-pool-data-source/src/test/java/com/paulissoft/pato/jdbc/CheckConfigurationOracleUnitTest.java +++ b/jdbc/smart-pool-data-source/src/test/java/com/paulissoft/pato/jdbc/CheckConfigurationOracleUnitTest.java @@ -48,8 +48,7 @@ void testPoolDataSourceConfigurationDomain() { assertEquals(CombiPoolDataSourceOracle.class, poolDataSourceConfiguration.getType()); assertEquals("PoolDataSourceConfigurationOracle(super=PoolDataSourceConfiguration(driverClassName=null, " + "url=jdbc:oracle:thin:@//127.0.0.1:1521/freepdb1, username=bodomain, password=bodomain, " + - "type=class com.paulissoft.pato.jdbc.CombiPoolDataSourceOracle), " + - "connectionPoolName=MyDomainDataSourceOracle-bodomain, " + + "type=class com.paulissoft.pato.jdbc.CombiPoolDataSourceOracle), connectionPoolName=MyDomainDataSourceOracle-bodomain, " + "initialPoolSize=0, minPoolSize=10, maxPoolSize=20, connectionFactoryClassName=oracle.jdbc.pool.OracleDataSource, " + "validateConnectionOnBorrow=false, abandonedConnectionTimeout=120, timeToLiveConnectionTimeout=120, " + "inactiveConnectionTimeout=0, timeoutCheckInterval=30, maxStatements=10, connectionWaitTimeout=3, " + @@ -70,11 +69,7 @@ void testPoolDataSourceConfigurationOperator() { assertEquals(CombiPoolDataSourceOracle.class, poolDataSourceConfiguration.getType()); assertEquals("PoolDataSourceConfigurationOracle(super=PoolDataSourceConfiguration(driverClassName=null, " + "url=jdbc:oracle:thin:@//127.0.0.1:1521/freepdb1, username=bodomain[boopapij], password=bodomain, " + - "type=class com.paulissoft.pato.jdbc.CombiPoolDataSourceOracle), " + - "connectionPoolName=" + (operatorDataSourceOracle.isParentPoolDataSource() ? - operatorDataSourceOracle.getPoolNamePrefix() : - domainDataSourceOracle.getPoolNamePrefix()) + "-" + - (operatorDataSourceOracle.isParentPoolDataSource() ? "boopapij" : "bodomain") + ", " + + "type=class com.paulissoft.pato.jdbc.CombiPoolDataSourceOracle), connectionPoolName=MyOperatorDataSourceOracle-boopapij, " + "initialPoolSize=0, minPoolSize=10, maxPoolSize=20, connectionFactoryClassName=oracle.jdbc.pool.OracleDataSource, " + "validateConnectionOnBorrow=false, abandonedConnectionTimeout=120, timeToLiveConnectionTimeout=120, " + "inactiveConnectionTimeout=0, timeoutCheckInterval=30, maxStatements=10, connectionWaitTimeout=3, " + From 3e6e4704ef9fcc1f069a519915f1fd3a9624741e Mon Sep 17 00:00:00 2001 From: Gert-Jan Paulissen Date: Wed, 15 May 2024 21:30:57 +0200 Subject: [PATCH 09/11] Code refactoring. --- .../paulissoft/pato/jdbc/CombiPoolDataSourceHikari.java | 8 ++------ .../paulissoft/pato/jdbc/CombiPoolDataSourceOracle.java | 8 ++------ 2 files changed, 4 insertions(+), 12 deletions(-) diff --git a/jdbc/smart-pool-data-source/src/main/java/com/paulissoft/pato/jdbc/CombiPoolDataSourceHikari.java b/jdbc/smart-pool-data-source/src/main/java/com/paulissoft/pato/jdbc/CombiPoolDataSourceHikari.java index fc81936c..43774049 100644 --- a/jdbc/smart-pool-data-source/src/main/java/com/paulissoft/pato/jdbc/CombiPoolDataSourceHikari.java +++ b/jdbc/smart-pool-data-source/src/main/java/com/paulissoft/pato/jdbc/CombiPoolDataSourceHikari.java @@ -318,12 +318,8 @@ private void updatePoolDescription(@NonNull final PoolDataSourceConfigurationHik poolDataSource.setPoolName(String.join("-", items)); } - if (isParentPoolDataSource) { - // keep poolDataSource.getPoolName() and poolDataSourceConfiguration.getPoolName() in sync - poolDataSourceConfiguration.setPoolName(poolDataSource.getPoolName()); - } else { - poolDataSourceConfiguration.setPoolName(getPoolNamePrefix() + "-" + schema); // own prefix - } + // keep poolDataSource.getPoolName() and poolDataSourceConfiguration.getPoolName() in sync + poolDataSourceConfiguration.setPoolName(getPoolNamePrefix() + "-" + schema); // own prefix } finally { log.debug("config pool data source; name: {}; address: {}", poolDataSourceConfiguration.getPoolName(), diff --git a/jdbc/smart-pool-data-source/src/main/java/com/paulissoft/pato/jdbc/CombiPoolDataSourceOracle.java b/jdbc/smart-pool-data-source/src/main/java/com/paulissoft/pato/jdbc/CombiPoolDataSourceOracle.java index ecf8303d..4ee7a294 100644 --- a/jdbc/smart-pool-data-source/src/main/java/com/paulissoft/pato/jdbc/CombiPoolDataSourceOracle.java +++ b/jdbc/smart-pool-data-source/src/main/java/com/paulissoft/pato/jdbc/CombiPoolDataSourceOracle.java @@ -247,12 +247,8 @@ protected void updatePoolDescription(@NonNull final PoolDataSourceConfigurationO } } - if (isParentPoolDataSource) { - // keep poolDataSource.getPoolDescription() and poolDataSourceConfiguration.getConnectionPoolName() in sync - poolDataSourceConfiguration.setConnectionPoolName(getPoolDescription(poolDataSource)); - } else { - poolDataSourceConfiguration.setConnectionPoolName(getPoolNamePrefix() + "-" + schema); // own prefix - } + // keep poolDataSource.getPoolDescription() and poolDataSourceConfiguration.getConnectionPoolName() in sync + poolDataSourceConfiguration.setConnectionPoolName(getPoolNamePrefix() + "-" + schema); // own prefix } catch (SQLException ex) { throw new RuntimeException(SimplePoolDataSource.exceptionToString(ex)); } finally { From 0b484233215b9a4808a95da60ca4f6fdb3bb5e1e Mon Sep 17 00:00:00 2001 From: Gert-Jan Paulissen Date: Wed, 15 May 2024 21:31:57 +0200 Subject: [PATCH 10/11] Update maven.config --- .mvn/maven.config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.mvn/maven.config b/.mvn/maven.config index f49b8e9c..15344741 100644 --- a/.mvn/maven.config +++ b/.mvn/maven.config @@ -1 +1 @@ --Drevision=3.1.1-SNAPSHOT +-Drevision=3.2.0-SNAPSHOT From 2c7267abd320d151fbf60ff49eebbb9f8aff6398 Mon Sep 17 00:00:00 2001 From: Gert-Jan Paulissen Date: Thu, 23 May 2024 11:31:12 +0200 Subject: [PATCH 11/11] Release 3.1.1 --- .mvn/maven.config | 2 +- CHANGELOG.md | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/.mvn/maven.config b/.mvn/maven.config index 15344741..778240bf 100644 --- a/.mvn/maven.config +++ b/.mvn/maven.config @@ -1 +1 @@ --Drevision=3.2.0-SNAPSHOT +-Drevision=3.1.1 diff --git a/CHANGELOG.md b/CHANGELOG.md index ca5d6582..4d4b7965 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,12 @@ Types of changes: ## [Unreleased] +## [3.1.1] - 2024-05-23 + +### Fixed + +- [Wrong JDBC setup for Flyway in release 3.1.0.](https://github.com/paulissoft/oracle-tools/issues/159) + ## [3.1.0] - 2024-05-14 ### Added