Commit df4ef3e1 authored by Andy Wilkinson's avatar Andy Wilkinson

Merge branch '1.3.x'

parents a96af058 ffc0dc44
......@@ -54,6 +54,7 @@ import org.springframework.boot.autoconfigure.condition.ConditionEvaluationRepor
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnSingleCandidate;
import org.springframework.boot.autoconfigure.condition.SearchStrategy;
import org.springframework.boot.autoconfigure.flyway.FlywayAutoConfiguration;
import org.springframework.boot.autoconfigure.liquibase.LiquibaseAutoConfiguration;
......@@ -178,7 +179,7 @@ public class EndpointAutoConfiguration {
}
@Configuration
@ConditionalOnBean(Flyway.class)
@ConditionalOnSingleCandidate(Flyway.class)
@ConditionalOnClass(Flyway.class)
static class FlywayEndpointConfiguration {
......@@ -191,7 +192,7 @@ public class EndpointAutoConfiguration {
}
@Configuration
@ConditionalOnBean(SpringLiquibase.class)
@ConditionalOnSingleCandidate(SpringLiquibase.class)
@ConditionalOnClass(SpringLiquibase.class)
static class LiquibaseEndpointConfiguration {
......
......@@ -23,6 +23,8 @@ import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Properties;
import liquibase.integration.spring.SpringLiquibase;
import org.flywaydb.core.Flyway;
import org.junit.After;
import org.junit.Test;
......@@ -61,6 +63,7 @@ import org.springframework.core.io.support.PropertiesLoaderUtils;
import org.springframework.validation.BindException;
import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.Mockito.mock;
/**
* Tests for {@link EndpointAutoConfiguration}.
......@@ -206,6 +209,15 @@ public class EndpointAutoConfigurationTests {
assertThat(endpoint.invoke()).hasSize(1);
}
@Test
public void flywayEndpointIsDisabledWhenThereAreMultipleFlywayBeans() {
this.context = new AnnotationConfigApplicationContext();
this.context.register(MultipleFlywayBeansConfig.class,
EndpointAutoConfiguration.class);
this.context.refresh();
assertThat(this.context.getBeansOfType(FlywayEndpoint.class)).hasSize(0);
}
@Test
public void testLiquibaseEndpoint() {
this.context = new AnnotationConfigApplicationContext();
......@@ -217,6 +229,15 @@ public class EndpointAutoConfigurationTests {
assertThat(endpoint.invoke()).hasSize(1);
}
@Test
public void liquibaseEndpointIsDisabledWhenThereAreMultipleSpringLiquibaseBeans() {
this.context = new AnnotationConfigApplicationContext();
this.context.register(MultipleLiquibaseBeansConfig.class,
EndpointAutoConfiguration.class);
this.context.refresh();
assertThat(this.context.getBeansOfType(LiquibaseEndpoint.class)).hasSize(0);
}
private void load(Class<?>... config) {
this.context = new AnnotationConfigApplicationContext();
this.context.register(config);
......@@ -287,4 +308,34 @@ public class EndpointAutoConfigurationTests {
}
@Configuration
static class MultipleFlywayBeansConfig {
@Bean
Flyway flywayOne() {
return mock(Flyway.class);
}
@Bean
Flyway flywayTwo() {
return mock(Flyway.class);
}
}
@Configuration
static class MultipleLiquibaseBeansConfig {
@Bean
SpringLiquibase liquibaseOne() {
return mock(SpringLiquibase.class);
}
@Bean
SpringLiquibase liquibaseTwo() {
return mock(SpringLiquibase.class);
}
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment