|
28 | 28 | import org.springframework.beans.factory.ObjectProvider;
|
29 | 29 | import org.springframework.boot.autoconfigure.AutoConfigureAfter;
|
30 | 30 | import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
|
| 31 | +import org.springframework.boot.autoconfigure.condition.AnyNestedCondition; |
31 | 32 | import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
|
32 | 33 | import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
|
33 | 34 | import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
|
|
37 | 38 | import org.springframework.boot.autoconfigure.jdbc.DataSourceProperties;
|
38 | 39 | import org.springframework.boot.autoconfigure.jdbc.JdbcOperationsDependsOnPostProcessor;
|
39 | 40 | import org.springframework.boot.autoconfigure.jdbc.NamedParameterJdbcOperationsDependsOnPostProcessor;
|
| 41 | +import org.springframework.boot.autoconfigure.liquibase.LiquibaseAutoConfiguration.LiquibaseDataSourceCondition; |
40 | 42 | import org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration;
|
41 | 43 | import org.springframework.boot.context.properties.EnableConfigurationProperties;
|
42 | 44 | import org.springframework.boot.jdbc.DataSourceBuilder;
|
43 | 45 | import org.springframework.context.annotation.Bean;
|
| 46 | +import org.springframework.context.annotation.Conditional; |
44 | 47 | import org.springframework.context.annotation.Configuration;
|
45 | 48 | import org.springframework.context.annotation.Import;
|
46 | 49 | import org.springframework.core.io.Resource;
|
|
65 | 68 | */
|
66 | 69 | @Configuration(proxyBeanMethods = false)
|
67 | 70 | @ConditionalOnClass({ SpringLiquibase.class, DatabaseChange.class })
|
68 |
| -@ConditionalOnProperty(prefix = LiquibaseProperties.PROPERTIES_PREFIX, name = "enabled", |
| 71 | +@ConditionalOnProperty(prefix = "spring.liquibase", name = "enabled", |
69 | 72 | matchIfMissing = true)
|
| 73 | +@Conditional(LiquibaseDataSourceCondition.class) |
70 | 74 | @AutoConfigureAfter({ DataSourceAutoConfiguration.class,
|
71 | 75 | HibernateJpaAutoConfiguration.class })
|
72 | 76 | public class LiquibaseAutoConfiguration {
|
@@ -140,20 +144,17 @@ private SpringLiquibase createSpringLiquibase(DataSource liquibaseDatasource,
|
140 | 144 | liquibase.setDataSource(liquibaseDataSource);
|
141 | 145 | return liquibase;
|
142 | 146 | }
|
143 |
| - else if (this.properties.isCreateDataSource()) { |
144 |
| - SpringLiquibase liquibase = new DataSourceClosingSpringLiquibase(); |
145 |
| - liquibase.setDataSource(createNewDataSource(dataSourceProperties)); |
146 |
| - return liquibase; |
147 |
| - } |
148 |
| - throw new LiquibaseDataSourceMissingException(); |
| 147 | + SpringLiquibase liquibase = new DataSourceClosingSpringLiquibase(); |
| 148 | + liquibase.setDataSource(createNewDataSource(dataSourceProperties)); |
| 149 | + return liquibase; |
149 | 150 | }
|
150 | 151 |
|
151 | 152 | private DataSource getDataSource(DataSource liquibaseDataSource,
|
152 | 153 | DataSource dataSource) {
|
153 | 154 | if (liquibaseDataSource != null) {
|
154 | 155 | return liquibaseDataSource;
|
155 | 156 | }
|
156 |
| - if (!this.properties.isCreateDataSource()) { |
| 157 | + if (this.properties.getUrl() == null && this.properties.getUser() == null) { |
157 | 158 | return dataSource;
|
158 | 159 | }
|
159 | 160 | return null;
|
@@ -227,4 +228,23 @@ public LiquibaseNamedParameterJdbcOperationsDependencyConfiguration() {
|
227 | 228 |
|
228 | 229 | }
|
229 | 230 |
|
| 231 | + static final class LiquibaseDataSourceCondition extends AnyNestedCondition { |
| 232 | + |
| 233 | + LiquibaseDataSourceCondition() { |
| 234 | + super(ConfigurationPhase.REGISTER_BEAN); |
| 235 | + } |
| 236 | + |
| 237 | + @ConditionalOnBean(DataSource.class) |
| 238 | + private static final class DataSourceBeanCondition { |
| 239 | + |
| 240 | + } |
| 241 | + |
| 242 | + @ConditionalOnProperty(prefix = "spring.liquibase", name = "url", |
| 243 | + matchIfMissing = false) |
| 244 | + private static final class LiquibaseUrlCondition { |
| 245 | + |
| 246 | + } |
| 247 | + |
| 248 | + } |
| 249 | + |
230 | 250 | }
|
0 commit comments