From 5f00d91176545c0f1ba8e20784334e540eeca7cc Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Mon, 7 Sep 2020 14:03:10 +0100 Subject: [PATCH] Restore identifying org.hsqldb.jdbcDriver as embedded See gh-23036 --- .../boot/jdbc/EmbeddedDatabaseConnection.java | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 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 feb12ddd0fd..3eb8505c3d3 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,17 +59,25 @@ public enum EmbeddedDatabaseConnection { /** * HSQL Database Connection. */ - HSQL(EmbeddedDatabaseType.HSQL, DatabaseDriver.HSQLDB.getDriverClassName(), "jdbc:hsqldb:mem:%s"); + HSQL(EmbeddedDatabaseType.HSQL, DatabaseDriver.HSQLDB.getDriverClassName(), "org.hsqldb.jdbcDriver", + "jdbc:hsqldb:mem:%s"); private final EmbeddedDatabaseType type; private final String driverClass; + private final String alternativeDriverClass; + private final String url; EmbeddedDatabaseConnection(EmbeddedDatabaseType type, String driverClass, String url) { + this(type, driverClass, null, url); + } + + EmbeddedDatabaseConnection(EmbeddedDatabaseType type, String driverClass, String fallbackDriverClass, String url) { this.type = type; this.driverClass = driverClass; + this.alternativeDriverClass = fallbackDriverClass; this.url = url; } @@ -106,8 +114,12 @@ public enum EmbeddedDatabaseConnection { * @return true if the driver class is one of the embedded types */ public static boolean isEmbedded(String driverClass) { - return driverClass != null && (driverClass.equals(HSQL.driverClass) || driverClass.equals(H2.driverClass) - || driverClass.equals(DERBY.driverClass)); + return driverClass != null + && (matches(HSQL, driverClass) || matches(H2, driverClass) || matches(DERBY, driverClass)); + } + + private static boolean matches(EmbeddedDatabaseConnection candidate, String driverClass) { + return driverClass.equals(candidate.driverClass) || driverClass.equals(candidate.alternativeDriverClass); } /**