diff --git a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/DatabaseDriver.java b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/DatabaseDriver.java index 10a6c7e1b58..030cbef3d8e 100644 --- a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/DatabaseDriver.java +++ b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/DatabaseDriver.java @@ -90,6 +90,12 @@ enum DatabaseDriver { SQLSERVER("com.microsoft.sqlserver.jdbc.SQLServerDriver", "com.microsoft.sqlserver.jdbc.SQLServerXADataSource"), + /** + * Firebird. + */ + FIREBIRD("org.firebirdsql.jdbc.FBDriver", + "org.firebirdsql.pool.FBConnectionPoolDataSource"), + /** * DB2 Server. */ @@ -99,7 +105,12 @@ enum DatabaseDriver { * DB2 AS400 Server. */ AS400("com.ibm.as400.access.AS400JDBCDriver", - "com.ibm.as400.access.AS400JDBCXADataSource"); + "com.ibm.as400.access.AS400JDBCXADataSource"), + + /** + * Teradata. + */ + TERADATA("com.teradata.jdbc.TeraDriver"); private final String driverClassName; diff --git a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/DriverClassNameProvider.java b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/DriverClassNameProvider.java deleted file mode 100644 index fe12406f981..00000000000 --- a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/DriverClassNameProvider.java +++ /dev/null @@ -1,74 +0,0 @@ -/* - * Copyright 2012-2015 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. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.springframework.boot.autoconfigure.jdbc; - -import java.util.Collections; -import java.util.HashMap; -import java.util.Map; - -import org.springframework.util.Assert; - -/** - * Provides JDBC driver class name for given JDBC URL. - * - * @author Maciej Walkowiak - * @since 1.1.0 - */ -class DriverClassNameProvider { - - private static final String JDBC_URL_PREFIX = "jdbc"; - - private static final Map DRIVERS; - - static { - Map drivers = new HashMap(); - drivers.put("derby", "org.apache.derby.jdbc.EmbeddedDriver"); - drivers.put("h2", "org.h2.Driver"); - drivers.put("hsqldb", "org.hsqldb.jdbc.JDBCDriver"); - drivers.put("sqlite", "org.sqlite.JDBC"); - drivers.put("mysql", "com.mysql.jdbc.Driver"); - drivers.put("mariadb", "org.mariadb.jdbc.Driver"); - drivers.put("google", "com.google.appengine.api.rdbms.AppEngineDriver"); - drivers.put("oracle", "oracle.jdbc.OracleDriver"); - drivers.put("postgresql", "org.postgresql.Driver"); - drivers.put("jtds", "net.sourceforge.jtds.jdbc.Driver"); - drivers.put("sqlserver", "com.microsoft.sqlserver.jdbc.SQLServerDriver"); - drivers.put("firebirdsql", "org.firebirdsql.jdbc.FBDriver"); - drivers.put("db2", "com.ibm.db2.jcc.DB2Driver"); - drivers.put("teradata", "com.teradata.jdbc.TeraDriver"); - DRIVERS = Collections.unmodifiableMap(drivers); - } - - /** - * Find a JDBC driver class name based on given JDBC URL. - * @param jdbcUrl JDBC URL - * @return driver class name or null if not found - */ - String getDriverClassName(final String jdbcUrl) { - Assert.notNull(jdbcUrl, "JdbcUrl must not be null"); - Assert.isTrue(jdbcUrl.startsWith(JDBC_URL_PREFIX), - "JdbcUrl must start with '" + JDBC_URL_PREFIX + "'"); - String urlWithoutPrefix = jdbcUrl.substring(JDBC_URL_PREFIX.length()); - for (Map.Entry driver : DRIVERS.entrySet()) { - if (urlWithoutPrefix.startsWith(":" + driver.getKey() + ":")) { - return driver.getValue(); - } - } - return null; - } - -}