diff --git a/module/spring-boot-jdbc/src/main/java/org/springframework/boot/jdbc/DatabaseDriver.java b/module/spring-boot-jdbc/src/main/java/org/springframework/boot/jdbc/DatabaseDriver.java index 0fbaeaa2cfc2..fc1c01f3a38e 100644 --- a/module/spring-boot-jdbc/src/main/java/org/springframework/boot/jdbc/DatabaseDriver.java +++ b/module/spring-boot-jdbc/src/main/java/org/springframework/boot/jdbc/DatabaseDriver.java @@ -44,7 +44,9 @@ public enum DatabaseDriver { /** * Apache Derby. + * @deprecated Derby is retired, use HSQLDB or H2 */ + @Deprecated(forRemoval = true, since = "4.1") DERBY("Apache Derby", "org.apache.derby.jdbc.EmbeddedDriver", "org.apache.derby.jdbc.EmbeddedXADataSource", "SELECT 1 FROM SYSIBM.SYSDUMMY1"), diff --git a/module/spring-boot-jdbc/src/main/java/org/springframework/boot/jdbc/EmbeddedDatabaseConnection.java b/module/spring-boot-jdbc/src/main/java/org/springframework/boot/jdbc/EmbeddedDatabaseConnection.java index b5809c6c023e..5e77b9aa4d8f 100644 --- a/module/spring-boot-jdbc/src/main/java/org/springframework/boot/jdbc/EmbeddedDatabaseConnection.java +++ b/module/spring-boot-jdbc/src/main/java/org/springframework/boot/jdbc/EmbeddedDatabaseConnection.java @@ -57,7 +57,9 @@ public enum EmbeddedDatabaseConnection { /** * Derby Database Connection. + * @deprecated Derby is retired, use HSQLDB or H2 */ + @Deprecated(forRemoval = true, since = "4.1") DERBY("jdbc:derby:memory:%s;create=true"), /** @@ -83,6 +85,7 @@ public enum EmbeddedDatabaseConnection { * Returns the driver class name. * @return the driver class name */ + @SuppressWarnings("removal") public @Nullable String getDriverClassName() { // See https://github.com/spring-projects/spring-boot/issues/32865 return switch (this) { @@ -97,6 +100,7 @@ public enum EmbeddedDatabaseConnection { * Returns the {@link EmbeddedDatabaseType} for the connection. * @return the database type */ + @SuppressWarnings("removal") public @Nullable EmbeddedDatabaseType getType() { // See https://github.com/spring-projects/spring-boot/issues/32865 return switch (this) { @@ -117,6 +121,7 @@ public enum EmbeddedDatabaseConnection { return (this.url != null) ? String.format(this.url, databaseName) : null; } + @SuppressWarnings("removal") boolean isEmbeddedUrl(String url) { // See https://github.com/spring-projects/spring-boot/issues/32865 return switch (this) { @@ -151,6 +156,7 @@ public static boolean isEmbedded(@Nullable String driverClass, @Nullable String return (url == null || connection.isEmbeddedUrl(url)); } + @SuppressWarnings("removal") private static EmbeddedDatabaseConnection getEmbeddedDatabaseConnection(String driverClass) { return Stream.of(H2, HSQLDB, DERBY) .filter((connection) -> connection.isDriverCompatible(driverClass)) diff --git a/module/spring-boot-jdbc/src/test/java/org/springframework/boot/jdbc/DatabaseDriverTests.java b/module/spring-boot-jdbc/src/test/java/org/springframework/boot/jdbc/DatabaseDriverTests.java index 479098dfe982..d7d0193d6861 100644 --- a/module/spring-boot-jdbc/src/test/java/org/springframework/boot/jdbc/DatabaseDriverTests.java +++ b/module/spring-boot-jdbc/src/test/java/org/springframework/boot/jdbc/DatabaseDriverTests.java @@ -61,6 +61,7 @@ void unknownOnNullProductName() { } @Test + @SuppressWarnings("removal") void databaseProductNameLookups() { assertThat(DatabaseDriver.fromProductName("newone")).isEqualTo(DatabaseDriver.UNKNOWN); assertThat(DatabaseDriver.fromProductName("Apache Derby")).isEqualTo(DatabaseDriver.DERBY); @@ -88,6 +89,7 @@ void databaseProductNameLookups() { } @Test + @SuppressWarnings("removal") void databaseJdbcUrlLookups() { assertThat(DatabaseDriver.fromJdbcUrl("jdbc:newone://localhost")).isEqualTo(DatabaseDriver.UNKNOWN); assertThat(DatabaseDriver.fromJdbcUrl("jdbc:derby:sample")).isEqualTo(DatabaseDriver.DERBY); diff --git a/module/spring-boot-jdbc/src/test/java/org/springframework/boot/jdbc/EmbeddedDatabaseConnectionTests.java b/module/spring-boot-jdbc/src/test/java/org/springframework/boot/jdbc/EmbeddedDatabaseConnectionTests.java index 5e33d9d03314..4f46b9772486 100644 --- a/module/spring-boot-jdbc/src/test/java/org/springframework/boot/jdbc/EmbeddedDatabaseConnectionTests.java +++ b/module/spring-boot-jdbc/src/test/java/org/springframework/boot/jdbc/EmbeddedDatabaseConnectionTests.java @@ -51,6 +51,7 @@ void h2CustomDatabaseName() { } @Test + @SuppressWarnings("removal") void derbyCustomDatabaseName() { assertThat(EmbeddedDatabaseConnection.DERBY.getUrl("myderbydb")) .isEqualTo("jdbc:derby:memory:myderbydb;create=true"); @@ -80,6 +81,7 @@ void isEmbeddedWithDriverAndUrl(String driverClassName, String url, boolean embe assertThat(EmbeddedDatabaseConnection.isEmbedded(driverClassName, url)).isEqualTo(embedded); } + @SuppressWarnings("removal") static Object[] embeddedDriverAndUrlParameters() { return new Object[] { new Object[] { EmbeddedDatabaseConnection.H2.getDriverClassName(), "jdbc:h2:~/test", false },