Upgrade Oracle Database version.

Upgrade database itself to the latest 23ai version.
The JDBC driver to 23.4.0.24.05
The R2DBC driver to 1.2.0

Closes #1804
Original pull request #1805
This commit is contained in:
LLEFEVRE
2024-06-04 09:27:47 +02:00
committed by Jens Schauder
parent 1bcc4ae906
commit 97cf38f1db
4 changed files with 15 additions and 18 deletions

View File

@@ -38,12 +38,7 @@
<mssql.version>12.2.0.jre11</mssql.version>
<mysql-connector-java.version>8.0.32</mysql-connector-java.version>
<postgresql.version>42.6.0</postgresql.version>
<!--
The Oracle driver 23.3.0.23.09 is not considered production ready by Oracle, but it fixes two important problems for Spring Data JDBC:
https://stackoverflow.com/q/72717261/66686
https://stackoverflow.com/q/62263576/66686
-->
<oracle.version>23.3.0.23.09</oracle.version>
<oracle.version>23.4.0.24.05</oracle.version>
<!-- test utilities-->
<awaitility.version>4.2.0</awaitility.version>

View File

@@ -28,14 +28,15 @@ import org.testcontainers.oracle.OracleContainer;
import org.testcontainers.utility.DockerImageName;
/**
* {@link DataSource} setup for Oracle Database XE. Starts a docker container with an Oracle database.
* {@link DataSource} setup for Oracle Database 23ai FREE. Starts a docker container with an Oracle database.
*
* @see <a href=
* "https://blogs.oracle.com/oraclemagazine/deliver-oracle-database-18c-express-edition-in-containers">Oracle
* "https://github.com/gvenzl/oci-oracle-free">Oracle
* Docker Image</a>
* @see <a href="https://www.testcontainers.org/modules/databases/oraclexe/">Testcontainers Oracle</a>
* @author Thomas Lang
* @author Jens Schauder
* @author Loïc Lefèvre
*/
@Configuration(proxyBeanMethods = false)
@ConditionalOnDatabase(DatabaseType.ORACLE)
@@ -55,7 +56,7 @@ public class OracleDataSourceConfiguration extends DataSourceConfiguration {
if (ORACLE_CONTAINER == null) {
LOG.info("Oracle starting...");
DockerImageName dockerImageName = DockerImageName.parse("gvenzl/oracle-free:23.3-slim");
DockerImageName dockerImageName = DockerImageName.parse("gvenzl/oracle-free:23-slim");
OracleContainer container = new OracleContainer(dockerImageName) //
.withStartupTimeoutSeconds(200) //
.withReuse(true);
@@ -73,7 +74,7 @@ public class OracleDataSourceConfiguration extends DataSourceConfiguration {
private void initDb() {
final DriverManagerDataSource dataSource = new DriverManagerDataSource(ORACLE_CONTAINER.getJdbcUrl(), "SYSTEM",
final DriverManagerDataSource dataSource = new DriverManagerDataSource(ORACLE_CONTAINER.getJdbcUrl(), "system",
ORACLE_CONTAINER.getPassword());
final JdbcTemplate jdbc = new JdbcTemplate(dataSource);
jdbc.execute("GRANT ALL PRIVILEGES TO " + ORACLE_CONTAINER.getUsername());

View File

@@ -31,7 +31,7 @@
<r2dbc-mariadb.version>1.1.4</r2dbc-mariadb.version>
<r2dbc-mssql.version>1.0.2.RELEASE</r2dbc-mssql.version>
<r2dbc-mysql.version>1.0.2</r2dbc-mysql.version>
<oracle-r2dbc.version>1.1.1</oracle-r2dbc.version>
<oracle-r2dbc.version>1.2.0</oracle-r2dbc.version>
<r2dbc-spi.version>1.0.0.RELEASE</r2dbc-spi.version>
<reactive-streams.version>1.0.4</reactive-streams.version>
<netty>4.1.107.Final</netty>
@@ -190,7 +190,7 @@
<dependency>
<groupId>com.oracle.database.jdbc</groupId>
<artifactId>ojdbc11</artifactId>
<version>21.5.0.0</version>
<version>23.4.0.24.05</version>
<scope>test</scope>
</dependency>

View File

@@ -36,6 +36,7 @@ import org.testcontainers.oracle.OracleContainer;
*
* @author Mark Paluch
* @author Jens Schauder
* @author Loïc Lefèvre
*/
public class OracleTestSupport {
@@ -113,10 +114,10 @@ public class OracleTestSupport {
return ProvidedDatabase.builder() //
.hostname("localhost") //
.port(1521) //
.database("XEPDB1") //
.username("system") //
.password("oracle") //
.jdbcUrl("jdbc:oracle:thin:system/oracle@localhost:1521:XEPDB1") //
.database("freepdb1") //
.username("test") //
.password("test") //
.jdbcUrl("jdbc:oracle:thin:test/test@localhost:1521/freepdb1") //
.build();
}
@@ -128,7 +129,7 @@ public class OracleTestSupport {
if (testContainerDatabase == null) {
try {
OracleContainer container = new OracleContainer("23.3-slim") //
OracleContainer container = new OracleContainer("gvenzl/oracle-free:23-slim") //
.withReuse(true) //
.withStartupTimeoutSeconds(200); // the default of 60s isn't sufficient
container.start();
@@ -167,7 +168,7 @@ public class OracleTestSupport {
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setUrl(database.getJdbcUrl().replace(":xe", "/XEPDB1"));
dataSource.setUrl(database.getJdbcUrl().replace(":freepdb1", "/freepdb1"));
dataSource.setUsername(database.getUsername());
dataSource.setPassword(database.getPassword());