Treat MariaDB type as MySQL
resolved Merge issues on cherry-pick
This commit is contained in:
@@ -101,10 +101,13 @@ public enum DatabaseType {
|
||||
* @return DatabaseType for given product name.
|
||||
* @throws IllegalArgumentException if none is found.
|
||||
*/
|
||||
public static DatabaseType fromProductName(String productName){
|
||||
if(!dbNameMap.containsKey(productName)){
|
||||
throw new IllegalArgumentException("DatabaseType not found for product name: [" +
|
||||
productName + "]");
|
||||
public static DatabaseType fromProductName(String productName) {
|
||||
if (productName.equals("MariaDB")) {
|
||||
productName = "MySQL";
|
||||
}
|
||||
if (!dbNameMap.containsKey(productName)) {
|
||||
throw new IllegalArgumentException(
|
||||
"DatabaseType not found for product name: [" + productName + "]");
|
||||
}
|
||||
else{
|
||||
return dbNameMap.get(productName);
|
||||
|
||||
@@ -101,7 +101,7 @@ public class TaskExecutionDaoFactoryBean implements FactoryBean<TaskExecutionDao
|
||||
this.dao = new JdbcTaskExecutionDao(dataSource, this.tablePrefix);
|
||||
String databaseType;
|
||||
try {
|
||||
databaseType = org.springframework.batch.support.DatabaseType.fromMetaData(dataSource).name();
|
||||
databaseType = DatabaseType.fromMetaData(dataSource).name();
|
||||
}
|
||||
catch (MetaDataAccessException e) {
|
||||
throw new IllegalStateException(e);
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
*/
|
||||
package org.springframework.cloud.task.repository.support;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.springframework.cloud.task.repository.support.DatabaseType.HSQL;
|
||||
import static org.springframework.cloud.task.repository.support.DatabaseType.MYSQL;
|
||||
@@ -39,10 +40,11 @@ public class DatabaseTypeTests {
|
||||
|
||||
@Test
|
||||
public void testFromProductName() {
|
||||
assertEquals(HSQL, fromProductName("HSQL Database Engine"));
|
||||
assertEquals(ORACLE, fromProductName("Oracle"));
|
||||
assertEquals(POSTGRES, fromProductName("PostgreSQL"));
|
||||
assertEquals(MYSQL, fromProductName("MySQL"));
|
||||
assertThat(fromProductName("HSQL Database Engine")).isEqualTo(HSQL);
|
||||
assertThat(fromProductName("Oracle")).isEqualTo(ORACLE);
|
||||
assertThat(fromProductName("PostgreSQL")).isEqualTo(POSTGRES);
|
||||
assertThat(fromProductName("MySQL")).isEqualTo(MYSQL);
|
||||
assertThat(fromProductName("MariaDB")).isEqualTo(MYSQL);
|
||||
}
|
||||
|
||||
@Test(expected = IllegalArgumentException.class)
|
||||
@@ -74,4 +76,10 @@ public class DatabaseTypeTests {
|
||||
assertEquals(MYSQL, DatabaseType.fromMetaData(ds));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testFromMetaDataForMariaDB() throws Exception {
|
||||
DataSource ds = TestDBUtils.getMockDataSource("MariaDB");
|
||||
assertThat(DatabaseType.fromMetaData(ds)).isEqualTo(MYSQL);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user