From cea95c303fe9944dbcad694395db777a03c1ef16 Mon Sep 17 00:00:00 2001 From: Michael Date: Wed, 19 Sep 2018 14:20:16 +0200 Subject: [PATCH 1/2] Add support for SAP Hana Database See gh-14513 --- .../java/org/springframework/boot/jdbc/DatabaseDriver.java | 6 ++++++ .../org/springframework/boot/jdbc/DatabaseDriverTests.java | 3 +++ 2 files changed, 9 insertions(+) diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jdbc/DatabaseDriver.java b/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jdbc/DatabaseDriver.java index 367f0dcd30..d17e1b47c4 100644 --- a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jdbc/DatabaseDriver.java +++ b/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jdbc/DatabaseDriver.java @@ -99,6 +99,12 @@ public enum DatabaseDriver { POSTGRESQL("PostgreSQL", "org.postgresql.Driver", "org.postgresql.xa.PGXADataSource", "SELECT 1"), + /** + * SAP - SAP Hana Database - HDB. + */ + SAP("HDB", "com.sap.db.jdbc.Driver", "com.sap.db.jdbcext.XADataSourceSAP", + "SELECT 1 FROM DUMMY"), + /** * jTDS. As it can be used for several databases, there isn't a single product name we * could rely on. diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/jdbc/DatabaseDriverTests.java b/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/jdbc/DatabaseDriverTests.java index 0396a75b88..2778231653 100644 --- a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/jdbc/DatabaseDriverTests.java +++ b/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/jdbc/DatabaseDriverTests.java @@ -74,6 +74,7 @@ public class DatabaseDriverTests { assertThat(DatabaseDriver.fromProductName("Apache Derby")) .isEqualTo(DatabaseDriver.DERBY); assertThat(DatabaseDriver.fromProductName("H2")).isEqualTo(DatabaseDriver.H2); + assertThat(DatabaseDriver.fromProductName("HDB")).isEqualTo(DatabaseDriver.SAP); assertThat(DatabaseDriver.fromProductName("HSQL Database Engine")) .isEqualTo(DatabaseDriver.HSQLDB); assertThat(DatabaseDriver.fromProductName("SQLite")) @@ -113,6 +114,8 @@ public class DatabaseDriverTests { .isEqualTo(DatabaseDriver.DERBY); assertThat(DatabaseDriver.fromJdbcUrl("jdbc:h2:~/sample")) .isEqualTo(DatabaseDriver.H2); + assertThat(DatabaseDriver.fromJdbcUrl("jdbc:sap:localhost")) + .isEqualTo(DatabaseDriver.SAP); assertThat(DatabaseDriver.fromJdbcUrl("jdbc:hsqldb:hsql://localhost")) .isEqualTo(DatabaseDriver.HSQLDB); assertThat(DatabaseDriver.fromJdbcUrl("jdbc:sqlite:sample.db")) From 22e77e02b6b9063d36b94f00c9e3892e8b8fc891 Mon Sep 17 00:00:00 2001 From: Stephane Nicoll Date: Thu, 20 Sep 2018 12:02:55 +0200 Subject: [PATCH 2/2] Polish "Add support for SAP Hana Database" Closes gh-14513 --- .../org/springframework/boot/jdbc/DatabaseDriverTests.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/jdbc/DatabaseDriverTests.java b/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/jdbc/DatabaseDriverTests.java index 2778231653..edd85a708b 100644 --- a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/jdbc/DatabaseDriverTests.java +++ b/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/jdbc/DatabaseDriverTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2017 the original author or authors. + * Copyright 2012-2018 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -114,8 +114,6 @@ public class DatabaseDriverTests { .isEqualTo(DatabaseDriver.DERBY); assertThat(DatabaseDriver.fromJdbcUrl("jdbc:h2:~/sample")) .isEqualTo(DatabaseDriver.H2); - assertThat(DatabaseDriver.fromJdbcUrl("jdbc:sap:localhost")) - .isEqualTo(DatabaseDriver.SAP); assertThat(DatabaseDriver.fromJdbcUrl("jdbc:hsqldb:hsql://localhost")) .isEqualTo(DatabaseDriver.HSQLDB); assertThat(DatabaseDriver.fromJdbcUrl("jdbc:sqlite:sample.db")) @@ -129,6 +127,8 @@ public class DatabaseDriverTests { assertThat( DatabaseDriver.fromJdbcUrl("jdbc:jtds:sqlserver://127.0.0.1:1433/sample")) .isEqualTo(DatabaseDriver.JTDS); + assertThat(DatabaseDriver.fromJdbcUrl("jdbc:sap:localhost")) + .isEqualTo(DatabaseDriver.SAP); assertThat(DatabaseDriver.fromJdbcUrl("jdbc:sqlserver://127.0.0.1:1433")) .isEqualTo(DatabaseDriver.SQLSERVER); assertThat(DatabaseDriver.fromJdbcUrl("jdbc:firebirdsql://localhost/sample"))