Skip to content

Commit 97cf38f

Browse files
loiclefevreschauder
authored andcommitted
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
1 parent 1bcc4ae commit 97cf38f

File tree

4 files changed

+15
-18
lines changed

4 files changed

+15
-18
lines changed

pom.xml

+1-6
Original file line numberDiff line numberDiff line change
@@ -38,12 +38,7 @@
3838
<mssql.version>12.2.0.jre11</mssql.version>
3939
<mysql-connector-java.version>8.0.32</mysql-connector-java.version>
4040
<postgresql.version>42.6.0</postgresql.version>
41-
<!--
42-
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:
43-
https://stackoverflow.com/q/72717261/66686
44-
https://stackoverflow.com/q/62263576/66686
45-
-->
46-
<oracle.version>23.3.0.23.09</oracle.version>
41+
<oracle.version>23.4.0.24.05</oracle.version>
4742

4843
<!-- test utilities-->
4944
<awaitility.version>4.2.0</awaitility.version>

spring-data-jdbc/src/test/java/org/springframework/data/jdbc/testing/OracleDataSourceConfiguration.java

+5-4
Original file line numberDiff line numberDiff line change
@@ -28,14 +28,15 @@
2828
import org.testcontainers.utility.DockerImageName;
2929

3030
/**
31-
* {@link DataSource} setup for Oracle Database XE. Starts a docker container with an Oracle database.
31+
* {@link DataSource} setup for Oracle Database 23ai FREE. Starts a docker container with an Oracle database.
3232
*
3333
* @see <a href=
34-
* "https://blogs.oracle.com/oraclemagazine/deliver-oracle-database-18c-express-edition-in-containers">Oracle
34+
* "https://github.com/gvenzl/oci-oracle-free">Oracle
3535
* Docker Image</a>
3636
* @see <a href="https://www.testcontainers.org/modules/databases/oraclexe/">Testcontainers Oracle</a>
3737
* @author Thomas Lang
3838
* @author Jens Schauder
39+
* @author Loïc Lefèvre
3940
*/
4041
@Configuration(proxyBeanMethods = false)
4142
@ConditionalOnDatabase(DatabaseType.ORACLE)
@@ -55,7 +56,7 @@ protected DataSource createDataSource() {
5556
if (ORACLE_CONTAINER == null) {
5657

5758
LOG.info("Oracle starting...");
58-
DockerImageName dockerImageName = DockerImageName.parse("gvenzl/oracle-free:23.3-slim");
59+
DockerImageName dockerImageName = DockerImageName.parse("gvenzl/oracle-free:23-slim");
5960
OracleContainer container = new OracleContainer(dockerImageName) //
6061
.withStartupTimeoutSeconds(200) //
6162
.withReuse(true);
@@ -73,7 +74,7 @@ protected DataSource createDataSource() {
7374

7475
private void initDb() {
7576

76-
final DriverManagerDataSource dataSource = new DriverManagerDataSource(ORACLE_CONTAINER.getJdbcUrl(), "SYSTEM",
77+
final DriverManagerDataSource dataSource = new DriverManagerDataSource(ORACLE_CONTAINER.getJdbcUrl(), "system",
7778
ORACLE_CONTAINER.getPassword());
7879
final JdbcTemplate jdbc = new JdbcTemplate(dataSource);
7980
jdbc.execute("GRANT ALL PRIVILEGES TO " + ORACLE_CONTAINER.getUsername());

spring-data-r2dbc/pom.xml

+2-2
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
<r2dbc-mariadb.version>1.1.4</r2dbc-mariadb.version>
3232
<r2dbc-mssql.version>1.0.2.RELEASE</r2dbc-mssql.version>
3333
<r2dbc-mysql.version>1.0.2</r2dbc-mysql.version>
34-
<oracle-r2dbc.version>1.1.1</oracle-r2dbc.version>
34+
<oracle-r2dbc.version>1.2.0</oracle-r2dbc.version>
3535
<r2dbc-spi.version>1.0.0.RELEASE</r2dbc-spi.version>
3636
<reactive-streams.version>1.0.4</reactive-streams.version>
3737
<netty>4.1.107.Final</netty>
@@ -190,7 +190,7 @@
190190
<dependency>
191191
<groupId>com.oracle.database.jdbc</groupId>
192192
<artifactId>ojdbc11</artifactId>
193-
<version>21.5.0.0</version>
193+
<version>23.4.0.24.05</version>
194194
<scope>test</scope>
195195
</dependency>
196196

spring-data-r2dbc/src/test/java/org/springframework/data/r2dbc/testing/OracleTestSupport.java

+7-6
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
*
3737
* @author Mark Paluch
3838
* @author Jens Schauder
39+
* @author Loïc Lefèvre
3940
*/
4041
public class OracleTestSupport {
4142

@@ -113,10 +114,10 @@ private static ExternalDatabase local() {
113114
return ProvidedDatabase.builder() //
114115
.hostname("localhost") //
115116
.port(1521) //
116-
.database("XEPDB1") //
117-
.username("system") //
118-
.password("oracle") //
119-
.jdbcUrl("jdbc:oracle:thin:system/oracle@localhost:1521:XEPDB1") //
117+
.database("freepdb1") //
118+
.username("test") //
119+
.password("test") //
120+
.jdbcUrl("jdbc:oracle:thin:test/test@localhost:1521/freepdb1") //
120121
.build();
121122
}
122123

@@ -128,7 +129,7 @@ private static ExternalDatabase testContainer() {
128129
if (testContainerDatabase == null) {
129130

130131
try {
131-
OracleContainer container = new OracleContainer("23.3-slim") //
132+
OracleContainer container = new OracleContainer("gvenzl/oracle-free:23-slim") //
132133
.withReuse(true) //
133134
.withStartupTimeoutSeconds(200); // the default of 60s isn't sufficient
134135
container.start();
@@ -167,7 +168,7 @@ public static DataSource createDataSource(ExternalDatabase database) {
167168

168169
DriverManagerDataSource dataSource = new DriverManagerDataSource();
169170

170-
dataSource.setUrl(database.getJdbcUrl().replace(":xe", "/XEPDB1"));
171+
dataSource.setUrl(database.getJdbcUrl().replace(":freepdb1", "/freepdb1"));
171172
dataSource.setUsername(database.getUsername());
172173
dataSource.setPassword(database.getPassword());
173174

0 commit comments

Comments
 (0)