From d5a1421bbe0e73ad4ceb31b5d728ce2bc75e4cb1 Mon Sep 17 00:00:00 2001 From: desainidhi99 <62072571+desainidhi99@users.noreply.github.com> Date: Thu, 1 Oct 2020 18:04:27 -0400 Subject: [PATCH] Deprecate EmbeddedDatabaseConnection#HSQL in favor of HSQLDB See gh-23565 --- .../boot/jdbc/EmbeddedDatabaseConnection.java | 11 ++++++++-- .../jdbc/EmbeddedDatabaseConnectionTests.java | 21 +++++++++++++++++++ 2 files changed, 30 insertions(+), 2 deletions(-) diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jdbc/EmbeddedDatabaseConnection.java b/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jdbc/EmbeddedDatabaseConnection.java index 3eb8505c3d..1148817a3d 100644 --- a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jdbc/EmbeddedDatabaseConnection.java +++ b/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jdbc/EmbeddedDatabaseConnection.java @@ -59,7 +59,14 @@ public enum EmbeddedDatabaseConnection { /** * HSQL Database Connection. */ + @Deprecated HSQL(EmbeddedDatabaseType.HSQL, DatabaseDriver.HSQLDB.getDriverClassName(), "org.hsqldb.jdbcDriver", + "jdbc:hsqldb:mem:%s"), + + /** + * HSQL Database Connection. + */ + HSQLDB(EmbeddedDatabaseType.HSQL, DatabaseDriver.HSQLDB.getDriverClassName(), "org.hsqldb.jdbcDriver", "jdbc:hsqldb:mem:%s"); private final EmbeddedDatabaseType type; @@ -114,8 +121,8 @@ public enum EmbeddedDatabaseConnection { * @return true if the driver class is one of the embedded types */ public static boolean isEmbedded(String driverClass) { - return driverClass != null - && (matches(HSQL, driverClass) || matches(H2, driverClass) || matches(DERBY, driverClass)); + return driverClass != null && (matches(HSQL, driverClass) || matches(H2, driverClass) + || matches(DERBY, driverClass) || matches(HSQLDB, driverClass)); } private static boolean matches(EmbeddedDatabaseConnection candidate, String driverClass) { diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/jdbc/EmbeddedDatabaseConnectionTests.java b/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/jdbc/EmbeddedDatabaseConnectionTests.java index bf7511c549..45da7a7734 100644 --- a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/jdbc/EmbeddedDatabaseConnectionTests.java +++ b/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/jdbc/EmbeddedDatabaseConnectionTests.java @@ -40,21 +40,42 @@ class EmbeddedDatabaseConnectionTests { .isEqualTo("jdbc:derby:memory:myderbydb;create=true"); } + @Deprecated @Test void hsqlCustomDatabaseName() { assertThat(EmbeddedDatabaseConnection.HSQL.getUrl("myhsql")).isEqualTo("jdbc:hsqldb:mem:myhsql"); } + @Deprecated @Test void getUrlWithNullDatabaseName() { assertThatIllegalArgumentException().isThrownBy(() -> EmbeddedDatabaseConnection.HSQL.getUrl(null)) .withMessageContaining("DatabaseName must not be empty"); } + @Deprecated @Test void getUrlWithEmptyDatabaseName() { assertThatIllegalArgumentException().isThrownBy(() -> EmbeddedDatabaseConnection.HSQL.getUrl(" ")) .withMessageContaining("DatabaseName must not be empty"); } +// HSQLDB connection tests added + @Test + void hsqldbCustomDatabaseName() { + assertThat(EmbeddedDatabaseConnection.HSQLDB.getUrl("myhsqldb")).isEqualTo("jdbc:hsqldb:mem:myhsqldb"); + } + + @Test + void getUrlWithNullDatabaseNameForHsqldb() { + assertThatIllegalArgumentException().isThrownBy(() -> EmbeddedDatabaseConnection.HSQLDB.getUrl(null)) + .withMessageContaining("DatabaseName must not be empty"); + } + + @Test + void getUrlWithEmptyDatabaseNameForHsqldb() { + assertThatIllegalArgumentException().isThrownBy(() -> EmbeddedDatabaseConnection.HSQLDB.getUrl(" ")) + .withMessageContaining("DatabaseName must not be empty"); + } + }