diff --git a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/liquibase/LiquibaseAutoConfiguration.java b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/liquibase/LiquibaseAutoConfiguration.java index 66eb37abb9..ca9c1e2bcd 100644 --- a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/liquibase/LiquibaseAutoConfiguration.java +++ b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/liquibase/LiquibaseAutoConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2016 the original author or authors. + * Copyright 2012-2017 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. @@ -76,11 +76,11 @@ public class LiquibaseAutoConfiguration { private final DataSource liquibaseDataSource; public LiquibaseConfiguration(LiquibaseProperties properties, - ResourceLoader resourceLoader, DataSource dataSource, + ResourceLoader resourceLoader, ObjectProvider dataSource, @LiquibaseDataSource ObjectProvider liquibaseDataSource) { this.properties = properties; this.resourceLoader = resourceLoader; - this.dataSource = dataSource; + this.dataSource = dataSource.getIfUnique(); this.liquibaseDataSource = liquibaseDataSource.getIfAvailable(); } diff --git a/spring-boot-docs/src/main/asciidoc/howto.adoc b/spring-boot-docs/src/main/asciidoc/howto.adoc index 75423af405..a9c64e0ebe 100644 --- a/spring-boot-docs/src/main/asciidoc/howto.adoc +++ b/spring-boot-docs/src/main/asciidoc/howto.adoc @@ -2200,6 +2200,12 @@ The master change log is by default read from `db/changelog/db.changelog-master. can be set using `liquibase.change-log`. In addition to YAML, Liquibase also supports JSON, XML, and SQL change log formats. +By default Liquibase will autowire the (`@Primary`) `DataSource` in your context and use +that for migrations. If you like to use a different `DataSource` you can create one and +mark its `@Bean` as `@LiquibaseDataSource` - if you do that remember to create another one +and mark it as `@Primary` if you want two data sources. Or you can use Liquibase's native +`DataSource` by setting `liquibase.[url,user,password]` in external properties. + See {sc-spring-boot-autoconfigure}/liquibase/LiquibaseProperties.{sc-ext}[`LiquibaseProperties`] for details of available settings like contexts, default schema etc. diff --git a/spring-boot-docs/src/main/asciidoc/spring-boot-features.adoc b/spring-boot-docs/src/main/asciidoc/spring-boot-features.adoc index ac200edeb0..a534cc3637 100644 --- a/spring-boot-docs/src/main/asciidoc/spring-boot-features.adoc +++ b/spring-boot-docs/src/main/asciidoc/spring-boot-features.adoc @@ -4921,6 +4921,16 @@ namespace, see the {sc-spring-boot-autoconfigure}/mail/MailProperties.{sc-ext}[`MailProperties`] for more details. +In particular, certain default timeout values are infinite and you may want to change that +to avoid having a thread blocked by an unresponsive mail server: + +[source,properties,indent=0] +---- + spring.mail.properties.mail.smtp.connecttimeout=5000 + spring.mail.properties.mail.smtp.timeout=3000 + spring.mail.properties.mail.smtp.writetimeout=5000 +---- + [[boot-features-jta]]