Skip to content

Commit d5a1421

Browse files
desainidhi99mbhave
authored andcommitted
Deprecate EmbeddedDatabaseConnection#HSQL in favor of HSQLDB
See gh-23565
1 parent 65c7cd4 commit d5a1421

File tree

2 files changed

+30
-2
lines changed

2 files changed

+30
-2
lines changed

spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jdbc/EmbeddedDatabaseConnection.java

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,14 @@ public enum EmbeddedDatabaseConnection {
5959
/**
6060
* HSQL Database Connection.
6161
*/
62+
@Deprecated
6263
HSQL(EmbeddedDatabaseType.HSQL, DatabaseDriver.HSQLDB.getDriverClassName(), "org.hsqldb.jdbcDriver",
64+
"jdbc:hsqldb:mem:%s"),
65+
66+
/**
67+
* HSQL Database Connection.
68+
*/
69+
HSQLDB(EmbeddedDatabaseType.HSQL, DatabaseDriver.HSQLDB.getDriverClassName(), "org.hsqldb.jdbcDriver",
6370
"jdbc:hsqldb:mem:%s");
6471

6572
private final EmbeddedDatabaseType type;
@@ -114,8 +121,8 @@ public String getUrl(String databaseName) {
114121
* @return true if the driver class is one of the embedded types
115122
*/
116123
public static boolean isEmbedded(String driverClass) {
117-
return driverClass != null
118-
&& (matches(HSQL, driverClass) || matches(H2, driverClass) || matches(DERBY, driverClass));
124+
return driverClass != null && (matches(HSQL, driverClass) || matches(H2, driverClass)
125+
|| matches(DERBY, driverClass) || matches(HSQLDB, driverClass));
119126
}
120127

121128
private static boolean matches(EmbeddedDatabaseConnection candidate, String driverClass) {

spring-boot-project/spring-boot/src/test/java/org/springframework/boot/jdbc/EmbeddedDatabaseConnectionTests.java

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,21 +40,42 @@ void derbyCustomDatabaseName() {
4040
.isEqualTo("jdbc:derby:memory:myderbydb;create=true");
4141
}
4242

43+
@Deprecated
4344
@Test
4445
void hsqlCustomDatabaseName() {
4546
assertThat(EmbeddedDatabaseConnection.HSQL.getUrl("myhsql")).isEqualTo("jdbc:hsqldb:mem:myhsql");
4647
}
4748

49+
@Deprecated
4850
@Test
4951
void getUrlWithNullDatabaseName() {
5052
assertThatIllegalArgumentException().isThrownBy(() -> EmbeddedDatabaseConnection.HSQL.getUrl(null))
5153
.withMessageContaining("DatabaseName must not be empty");
5254
}
5355

56+
@Deprecated
5457
@Test
5558
void getUrlWithEmptyDatabaseName() {
5659
assertThatIllegalArgumentException().isThrownBy(() -> EmbeddedDatabaseConnection.HSQL.getUrl(" "))
5760
.withMessageContaining("DatabaseName must not be empty");
5861
}
5962

63+
// HSQLDB connection tests added
64+
@Test
65+
void hsqldbCustomDatabaseName() {
66+
assertThat(EmbeddedDatabaseConnection.HSQLDB.getUrl("myhsqldb")).isEqualTo("jdbc:hsqldb:mem:myhsqldb");
67+
}
68+
69+
@Test
70+
void getUrlWithNullDatabaseNameForHsqldb() {
71+
assertThatIllegalArgumentException().isThrownBy(() -> EmbeddedDatabaseConnection.HSQLDB.getUrl(null))
72+
.withMessageContaining("DatabaseName must not be empty");
73+
}
74+
75+
@Test
76+
void getUrlWithEmptyDatabaseNameForHsqldb() {
77+
assertThatIllegalArgumentException().isThrownBy(() -> EmbeddedDatabaseConnection.HSQLDB.getUrl(" "))
78+
.withMessageContaining("DatabaseName must not be empty");
79+
}
80+
6081
}

0 commit comments

Comments
 (0)