Browse Source

Merge branch '2.5.x'

Closes gh-26943
pull/26958/head
Andy Wilkinson 5 years ago
parent
commit
2d44119894
  1. 13
      spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jdbc/init/DataSourceScriptDatabaseInitializer.java
  2. 8
      spring-boot-project/spring-boot/src/test/java/org/springframework/boot/jdbc/init/DataSourceScriptDatabaseInitializerTests.java

13
spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jdbc/init/DataSourceScriptDatabaseInitializer.java

@ -21,6 +21,9 @@ import java.util.List; @@ -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; @@ -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 @@ -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

8
spring-boot-project/spring-boot/src/test/java/org/springframework/boot/jdbc/init/DataSourceScriptDatabaseInitializerTests.java

@ -22,6 +22,7 @@ import javax.sql.DataSource; @@ -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 @@ -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) {

Loading…
Cancel
Save