From ccf4fac124b0283980bbf7d34a57354b8216bd58 Mon Sep 17 00:00:00 2001 From: LLEFEVRE Date: Mon, 2 Jan 2023 16:28:22 +0100 Subject: [PATCH] HHH-15961 Speed-up Oracle CI build --- databases/oracle/matrix.gradle | 2 +- docker_db.sh | 47 ++++++++++++++++--- .../userguide/events/InterceptorTest.java | 6 ++- gradle/databases.gradle | 4 +- .../test/type/AbstractJavaTimeTypeTest.java | 9 +++- .../src/test/resources/hibernate.properties | 5 +- ...edDriverManagerConnectionProviderImpl.java | 3 +- settings.gradle | 2 +- 8 files changed, 62 insertions(+), 16 deletions(-) diff --git a/databases/oracle/matrix.gradle b/databases/oracle/matrix.gradle index b72fb88071..cf9b710808 100644 --- a/databases/oracle/matrix.gradle +++ b/databases/oracle/matrix.gradle @@ -4,4 +4,4 @@ * License: GNU Lesser General Public License (LGPL), version 2.1 or later. * See the lgpl.txt file in the root directory or . */ -jdbcDependency 'com.oracle.database.jdbc:ojdbc8:21.1.0.0' \ No newline at end of file +jdbcDependency 'com.oracle.database.jdbc:ojdbc8:21.8.0.0' \ No newline at end of file diff --git a/docker_db.sh b/docker_db.sh index ad783894f1..192ea8bfd7 100755 --- a/docker_db.sh +++ b/docker_db.sh @@ -450,24 +450,57 @@ oracle_setup() { echo "Oracle successfully started" # We increase file sizes to avoid online resizes as that requires lots of CPU which is restricted in XE $CONTAINER_CLI exec oracle bash -c "source /home/oracle/.bashrc; bash -c \" -cat < extends BaseCoreFunctionalT TimeZone timeZoneBefore = TimeZone.getDefault(); TimeZone.setDefault( toTimeZone( env.defaultJvmTimeZone ) ); // Clear the connection pool to avoid issues with drivers that initialize the session TZ to the system TZ - SharedDriverManagerConnectionProviderImpl.getInstance().reset(); + if( determineDialect() instanceof H2Dialect || determineDialect() instanceof HSQLDialect) { + SharedDriverManagerConnectionProviderImpl.getInstance().reset(); + } /* * Run the code in a new thread, because some libraries (looking at you, h2 JDBC driver) * cache data dependent on the default timezone in thread local variables, @@ -227,7 +230,9 @@ public abstract class AbstractJavaTimeTypeTest extends BaseCoreFunctionalT finally { TimeZone.setDefault( timeZoneBefore ); // Clear the connection pool to avoid issues with drivers that initialize the session TZ to the system TZ - SharedDriverManagerConnectionProviderImpl.getInstance().reset(); + if( determineDialect() instanceof H2Dialect || determineDialect() instanceof HSQLDialect) { + SharedDriverManagerConnectionProviderImpl.getInstance().reset(); + } } } diff --git a/hibernate-hikaricp/src/test/resources/hibernate.properties b/hibernate-hikaricp/src/test/resources/hibernate.properties index 11d487ded5..8c3bcc2797 100644 --- a/hibernate-hikaricp/src/test/resources/hibernate.properties +++ b/hibernate-hikaricp/src/test/resources/hibernate.properties @@ -16,4 +16,7 @@ hibernate.connection.provider_class HikariCPConnectionProvider hibernate.hikari.poolName testPool # Purposefully low and simplisitic. -hibernate.hikari.maximumPoolSize 2 \ No newline at end of file +hibernate.hikari.maximumPoolSize 2 +# Reduce default timeout from 30 seconds down to 5 seconds to speed-up +# HikariCPConnectionProviderTest#testHikariCPConnectionProvider +hibernate.hikari.connectionTimeout 5000 diff --git a/hibernate-testing/src/main/java/org/hibernate/testing/jdbc/SharedDriverManagerConnectionProviderImpl.java b/hibernate-testing/src/main/java/org/hibernate/testing/jdbc/SharedDriverManagerConnectionProviderImpl.java index a5f320124a..afb67e9b1e 100644 --- a/hibernate-testing/src/main/java/org/hibernate/testing/jdbc/SharedDriverManagerConnectionProviderImpl.java +++ b/hibernate-testing/src/main/java/org/hibernate/testing/jdbc/SharedDriverManagerConnectionProviderImpl.java @@ -21,6 +21,7 @@ import org.hibernate.internal.util.config.ConfigurationHelper; * A special connection provider that is shared across test runs for better performance. * * @author Christian Beikov + * @author Loïc Lefèvre */ public class SharedDriverManagerConnectionProviderImpl extends DriverManagerConnectionProviderImpl { @@ -88,7 +89,7 @@ public class SharedDriverManagerConnectionProviderImpl extends DriverManagerConn public Config(Map configurationValues) { this.autoCommit = ConfigurationHelper.getBoolean( AvailableSettings.AUTOCOMMIT, configurationValues, false ); - this.minSize = ConfigurationHelper.getInt( MIN_SIZE, configurationValues, 2 ); + this.minSize = ConfigurationHelper.getInt( MIN_SIZE, configurationValues, 0 ); this.maxSize = ConfigurationHelper.getInt( AvailableSettings.POOL_SIZE, configurationValues, 20 ); this.initialSize = ConfigurationHelper.getInt( INITIAL_SIZE, configurationValues, minSize ); this.driverClassName = (String) configurationValues.get( AvailableSettings.DRIVER ); diff --git a/settings.gradle b/settings.gradle index 580d7771c2..3bb5b8080d 100644 --- a/settings.gradle +++ b/settings.gradle @@ -183,7 +183,7 @@ dependencyResolutionManagement { version( "derby", derbyVersion ) version( "pgsql", "42.5.0" ) version( "mysql", "8.0.27" ) - version( "oracle", "21.3.0.0" ) + version( "oracle", "21.8.0.0" ) alias( "h2" ).to( "com.h2database", "h2" ).versionRef( "h2" ) alias( "h2gis" ).to( "org.orbisgis", "h2gis" ).versionRef( "h2gis" )