Merge branch '2.5.x'
Closes gh-26943
This commit is contained in:
@@ -21,6 +21,9 @@ import java.util.List;
|
||||
|
||||
import javax.sql.DataSource;
|
||||
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
|
||||
import org.springframework.beans.factory.InitializingBean;
|
||||
import org.springframework.boot.jdbc.EmbeddedDatabaseConnection;
|
||||
import org.springframework.boot.sql.init.AbstractScriptDatabaseInitializer;
|
||||
@@ -38,6 +41,8 @@ import org.springframework.jdbc.datasource.init.ResourceDatabasePopulator;
|
||||
*/
|
||||
public class DataSourceScriptDatabaseInitializer extends AbstractScriptDatabaseInitializer {
|
||||
|
||||
private static final Log logger = LogFactory.getLog(DataSourceScriptDatabaseInitializer.class);
|
||||
|
||||
private final DataSource dataSource;
|
||||
|
||||
/**
|
||||
@@ -61,7 +66,13 @@ public class DataSourceScriptDatabaseInitializer extends AbstractScriptDatabaseI
|
||||
|
||||
@Override
|
||||
protected boolean isEmbeddedDatabase() {
|
||||
return EmbeddedDatabaseConnection.isEmbedded(this.dataSource);
|
||||
try {
|
||||
return EmbeddedDatabaseConnection.isEmbedded(this.dataSource);
|
||||
}
|
||||
catch (Exception ex) {
|
||||
logger.debug("Could not determine if datasource is embedded", ex);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -22,6 +22,7 @@ import javax.sql.DataSource;
|
||||
|
||||
import com.zaxxer.hikari.HikariDataSource;
|
||||
import org.junit.jupiter.api.AfterEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import org.springframework.boot.jdbc.DataSourceBuilder;
|
||||
import org.springframework.boot.sql.init.AbstractScriptDatabaseInitializerTests;
|
||||
@@ -53,6 +54,13 @@ class DataSourceScriptDatabaseInitializerTests
|
||||
this.standloneDataSource.close();
|
||||
}
|
||||
|
||||
@Test
|
||||
void whenDatabaseIsInaccessibleThenItIsAssumedNotToBeEmbedded() {
|
||||
DataSourceScriptDatabaseInitializer initializer = new DataSourceScriptDatabaseInitializer(
|
||||
new HikariDataSource(), new DatabaseInitializationSettings());
|
||||
assertThat(initializer.isEmbeddedDatabase()).isFalse();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected DataSourceScriptDatabaseInitializer createEmbeddedDatabaseInitializer(
|
||||
DatabaseInitializationSettings settings) {
|
||||
|
||||
Reference in New Issue
Block a user