Repository is not initialized if tablePrefix is set.

resolves #311
This commit is contained in:
Glenn Renfro
2017-05-04 17:52:05 -04:00
committed by Michael Minella
parent b03f8398a7
commit 6c47223859
3 changed files with 53 additions and 2 deletions

View File

@@ -17,6 +17,7 @@
package org.springframework.cloud.task.configuration;
import java.util.Collection;
import javax.annotation.PostConstruct;
import javax.sql.DataSource;

View File

@@ -29,6 +29,7 @@ import org.springframework.jdbc.datasource.init.DatabasePopulatorUtils;
import org.springframework.jdbc.datasource.init.ResourceDatabasePopulator;
import org.springframework.jdbc.support.JdbcUtils;
import org.springframework.jdbc.support.MetaDataAccessException;
import org.springframework.util.StringUtils;
/**
* Utility for initializing the Task Repository's datasource. If a single
@@ -63,6 +64,9 @@ public final class TaskRepositoryInitializer implements InitializingBean {
@Value("${spring.cloud.task.initialize.enable:true}")
private boolean taskInitializationEnable;
@Value("${spring.cloud.task.tablePrefix:#{null}}")
private String tablePrefix;
public TaskRepositoryInitializer(){
}
@@ -86,7 +90,9 @@ public final class TaskRepositoryInitializer implements InitializingBean {
@Override
public void afterPropertiesSet() throws Exception {
if (dataSource != null && taskInitializationEnable) {
if (dataSource != null &&
taskInitializationEnable &&
!StringUtils.hasText(this.tablePrefix)) {
String platform = getDatabaseType(dataSource);
if ("hsql".equals(platform)) {
platform = "hsqldb";