diff --git a/pom.xml b/pom.xml
index b09e125c..64129b4f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -33,6 +33,7 @@
11.5.8.0
2.1.214
+ 5.1.0
2.7.1
3.1.3
12.2.0.jre11
@@ -45,7 +46,7 @@
-->
23.3.0.23.09
-
+
4.2.0
1.0.1
diff --git a/spring-data-jdbc/pom.xml b/spring-data-jdbc/pom.xml
index bb322837..57286c17 100644
--- a/spring-data-jdbc/pom.xml
+++ b/spring-data-jdbc/pom.xml
@@ -233,6 +233,12 @@
test
+
+ com.zaxxer
+ HikariCP
+ ${hikari.version}
+ test
+
diff --git a/spring-data-jdbc/src/test/java/org/springframework/data/jdbc/testing/DataSourceConfiguration.java b/spring-data-jdbc/src/test/java/org/springframework/data/jdbc/testing/DataSourceConfiguration.java
index 3ad3edba..dcea632b 100644
--- a/spring-data-jdbc/src/test/java/org/springframework/data/jdbc/testing/DataSourceConfiguration.java
+++ b/spring-data-jdbc/src/test/java/org/springframework/data/jdbc/testing/DataSourceConfiguration.java
@@ -24,6 +24,8 @@ import java.util.concurrent.TimeUnit;
import javax.sql.DataSource;
+import com.zaxxer.hikari.HikariConfig;
+import com.zaxxer.hikari.HikariDataSource;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.awaitility.Awaitility;
diff --git a/spring-data-jdbc/src/test/java/org/springframework/data/jdbc/testing/OracleDataSourceConfiguration.java b/spring-data-jdbc/src/test/java/org/springframework/data/jdbc/testing/OracleDataSourceConfiguration.java
index 8f002965..28e37f5d 100644
--- a/spring-data-jdbc/src/test/java/org/springframework/data/jdbc/testing/OracleDataSourceConfiguration.java
+++ b/spring-data-jdbc/src/test/java/org/springframework/data/jdbc/testing/OracleDataSourceConfiguration.java
@@ -27,12 +27,13 @@ import org.springframework.jdbc.datasource.init.ResourceDatabasePopulator;
import org.testcontainers.oracle.OracleContainer;
import org.testcontainers.utility.DockerImageName;
+import com.zaxxer.hikari.HikariConfig;
+import com.zaxxer.hikari.HikariDataSource;
+
/**
* {@link DataSource} setup for Oracle Database XE. Starts a docker container with an Oracle database.
*
- * @see Oracle
- * Docker Image
+ * @see Oracle Docker Image
* @see Testcontainers Oracle
* @author Thomas Lang
* @author Jens Schauder
@@ -43,16 +44,16 @@ public class OracleDataSourceConfiguration extends DataSourceConfiguration {
private static final Log LOG = LogFactory.getLog(OracleDataSourceConfiguration.class);
- private static OracleContainer ORACLE_CONTAINER;
+ private static DataSource DATA_SOURCE;
public OracleDataSourceConfiguration(TestClass testClass, Environment environment) {
super(testClass, environment);
}
@Override
- protected DataSource createDataSource() {
+ protected synchronized DataSource createDataSource() {
- if (ORACLE_CONTAINER == null) {
+ if (DATA_SOURCE == null) {
LOG.info("Oracle starting...");
DockerImageName dockerImageName = DockerImageName.parse("gvenzl/oracle-free:23.3-slim");
@@ -62,21 +63,33 @@ public class OracleDataSourceConfiguration extends DataSourceConfiguration {
container.start();
LOG.info("Oracle started");
- ORACLE_CONTAINER = container;
+ initDb(container.getJdbcUrl(),container.getUsername(), container.getPassword());
+
+ DATA_SOURCE = poolDataSource(new DriverManagerDataSource(container.getJdbcUrl(),
+ container.getUsername(), container.getPassword()));
}
-
- initDb();
-
- return new DriverManagerDataSource(ORACLE_CONTAINER.getJdbcUrl(), ORACLE_CONTAINER.getUsername(),
- ORACLE_CONTAINER.getPassword());
+ return DATA_SOURCE;
}
- private void initDb() {
+ private DataSource poolDataSource(DataSource dataSource) {
- final DriverManagerDataSource dataSource = new DriverManagerDataSource(ORACLE_CONTAINER.getJdbcUrl(), "SYSTEM",
- ORACLE_CONTAINER.getPassword());
+ HikariConfig config = new HikariConfig();
+ config.setDataSource(dataSource);
+
+ config.setMaximumPoolSize(10);
+ config.setIdleTimeout(30000);
+ config.setMaxLifetime(600000);
+ config.setConnectionTimeout(30000);
+
+ return new HikariDataSource(config);
+ }
+
+ private void initDb(String jdbcUrl, String username, String password) {
+
+ final DriverManagerDataSource dataSource = new DriverManagerDataSource(jdbcUrl, "SYSTEM",
+ password);
final JdbcTemplate jdbc = new JdbcTemplate(dataSource);
- jdbc.execute("GRANT ALL PRIVILEGES TO " + ORACLE_CONTAINER.getUsername());
+ jdbc.execute("GRANT ALL PRIVILEGES TO " + username);
}
@Override
diff --git a/spring-data-relational/pom.xml b/spring-data-relational/pom.xml
index 4129d722..562034e8 100644
--- a/spring-data-relational/pom.xml
+++ b/spring-data-relational/pom.xml
@@ -103,7 +103,6 @@
4.6
test
-