diff --git a/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/autoconfigure/HealthIndicatorAutoConfiguration.java b/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/autoconfigure/HealthIndicatorAutoConfiguration.java index 526c39ec8f8..c6885e11d46 100644 --- a/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/autoconfigure/HealthIndicatorAutoConfiguration.java +++ b/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/autoconfigure/HealthIndicatorAutoConfiguration.java @@ -45,9 +45,9 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; -import org.springframework.boot.autoconfigure.jdbc.metadata.CompositeDataSourcePoolMetadataProvider; import org.springframework.boot.autoconfigure.jdbc.metadata.DataSourcePoolMetadata; import org.springframework.boot.autoconfigure.jdbc.metadata.DataSourcePoolMetadataProvider; +import org.springframework.boot.autoconfigure.jdbc.metadata.DataSourcePoolMetadataProviders; import org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration; import org.springframework.boot.autoconfigure.mongo.MongoDataAutoConfiguration; import org.springframework.boot.autoconfigure.redis.RedisAutoConfiguration; @@ -109,19 +109,19 @@ public class HealthIndicatorAutoConfiguration { @Bean @ConditionalOnMissingBean(name = "dbHealthIndicator") public HealthIndicator dbHealthIndicator() { - DataSourcePoolMetadataProvider metadataProvider = new CompositeDataSourcePoolMetadataProvider( + DataSourcePoolMetadataProvider metadataProvider = new DataSourcePoolMetadataProviders( this.metadataProviders); if (this.dataSources.size() == 1) { - return createDataSourceHealthIndicator(metadataProvider, this.dataSources - .values().iterator().next()); + DataSource dataSource = this.dataSources.values().iterator().next(); + return createDataSourceHealthIndicator(metadataProvider, dataSource); } CompositeHealthIndicator composite = new CompositeHealthIndicator( this.healthAggregator); for (Map.Entry entry : this.dataSources.entrySet()) { - composite.addHealthIndicator( - entry.getKey(), - createDataSourceHealthIndicator(metadataProvider, - entry.getValue())); + String name = entry.getKey(); + DataSource dataSource = entry.getValue(); + composite.addHealthIndicator(name, + createDataSourceHealthIndicator(metadataProvider, dataSource)); } return composite; } diff --git a/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/endpoint/DataSourcePublicMetrics.java b/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/endpoint/DataSourcePublicMetrics.java index 361f14767a2..a2f3f4b4315 100644 --- a/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/endpoint/DataSourcePublicMetrics.java +++ b/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/endpoint/DataSourcePublicMetrics.java @@ -28,7 +28,7 @@ import javax.sql.DataSource; import org.springframework.beans.factory.NoSuchBeanDefinitionException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.actuate.metrics.Metric; -import org.springframework.boot.autoconfigure.jdbc.metadata.CompositeDataSourcePoolMetadataProvider; +import org.springframework.boot.autoconfigure.jdbc.metadata.DataSourcePoolMetadataProviders; import org.springframework.boot.autoconfigure.jdbc.metadata.DataSourcePoolMetadata; import org.springframework.boot.autoconfigure.jdbc.metadata.DataSourcePoolMetadataProvider; import org.springframework.context.ApplicationContext; @@ -55,7 +55,7 @@ public class DataSourcePublicMetrics implements PublicMetrics { @PostConstruct public void initialize() { DataSource primaryDataSource = getPrimaryDataSource(); - DataSourcePoolMetadataProvider provider = new CompositeDataSourcePoolMetadataProvider( + DataSourcePoolMetadataProvider provider = new DataSourcePoolMetadataProviders( this.providers); for (Map.Entry entry : this.applicationContext .getBeansOfType(DataSource.class).entrySet()) { diff --git a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/metadata/CompositeDataSourcePoolMetadataProvider.java b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/metadata/DataSourcePoolMetadataProviders.java similarity index 67% rename from spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/metadata/CompositeDataSourcePoolMetadataProvider.java rename to spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/metadata/DataSourcePoolMetadataProviders.java index cbb06584d3e..875ff14dd7a 100644 --- a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/metadata/CompositeDataSourcePoolMetadataProvider.java +++ b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/metadata/DataSourcePoolMetadataProviders.java @@ -29,22 +29,15 @@ import javax.sql.DataSource; * @author Stephane Nicoll * @since 1.2.0 */ -public class CompositeDataSourcePoolMetadataProvider implements DataSourcePoolMetadataProvider { +public class DataSourcePoolMetadataProviders implements DataSourcePoolMetadataProvider { private final List providers; /** - * Create a {@link CompositeDataSourcePoolMetadataProvider} instance with no delegate. - */ - public CompositeDataSourcePoolMetadataProvider() { - this(new ArrayList()); - } - - /** - * Create a {@link CompositeDataSourcePoolMetadataProvider} instance with an initial + * Create a {@link DataSourcePoolMetadataProviders} instance with an initial * collection of delegates to use. */ - public CompositeDataSourcePoolMetadataProvider( + public DataSourcePoolMetadataProviders( Collection providers) { this.providers = new ArrayList(providers); } @@ -52,7 +45,8 @@ public class CompositeDataSourcePoolMetadataProvider implements DataSourcePoolMe @Override public DataSourcePoolMetadata getDataSourcePoolMetadata(DataSource dataSource) { for (DataSourcePoolMetadataProvider provider : this.providers) { - DataSourcePoolMetadata metadata = provider.getDataSourcePoolMetadata(dataSource); + DataSourcePoolMetadata metadata = provider + .getDataSourcePoolMetadata(dataSource); if (metadata != null) { return metadata; } @@ -60,11 +54,4 @@ public class CompositeDataSourcePoolMetadataProvider implements DataSourcePoolMe return null; } - /** - * Add a {@link DataSourcePoolMetadataProvider} delegate to the list. - */ - public void addDataSourceMetadataProvider(DataSourcePoolMetadataProvider provider) { - this.providers.add(provider); - } - } diff --git a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jdbc/metadata/CompositeDataSourceMetadataProviderTests.java b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jdbc/metadata/DataSourcePoolMetadataProvidersTests.java similarity index 68% rename from spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jdbc/metadata/CompositeDataSourceMetadataProviderTests.java rename to spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jdbc/metadata/DataSourcePoolMetadataProvidersTests.java index 6f05901d27b..6fd985cbf9a 100644 --- a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jdbc/metadata/CompositeDataSourceMetadataProviderTests.java +++ b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jdbc/metadata/DataSourcePoolMetadataProvidersTests.java @@ -24,20 +24,17 @@ import org.junit.Before; import org.junit.Test; import org.mockito.Mock; import org.mockito.MockitoAnnotations; -import org.springframework.boot.autoconfigure.jdbc.metadata.CompositeDataSourcePoolMetadataProvider; -import org.springframework.boot.autoconfigure.jdbc.metadata.DataSourcePoolMetadata; -import org.springframework.boot.autoconfigure.jdbc.metadata.DataSourcePoolMetadataProvider; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertSame; import static org.mockito.BDDMockito.given; /** - * Tests for {@link CompositeDataSourcePoolMetadataProvider}. + * Tests for {@link DataSourcePoolMetadataProviders}. * * @author Stephane Nicoll */ -public class CompositeDataSourceMetadataProviderTests { +public class DataSourcePoolMetadataProvidersTests { @Mock private DataSourcePoolMetadataProvider firstProvider; @@ -63,27 +60,19 @@ public class CompositeDataSourceMetadataProviderTests { @Before public void setup() { MockitoAnnotations.initMocks(this); - given(this.firstProvider.getDataSourcePoolMetadata(this.firstDataSource)).willReturn( - this.first); + given(this.firstProvider.getDataSourcePoolMetadata(this.firstDataSource)) + .willReturn(this.first); given(this.firstProvider.getDataSourcePoolMetadata(this.secondDataSource)) .willReturn(this.second); } @Test public void createWithProviders() { - CompositeDataSourcePoolMetadataProvider provider = new CompositeDataSourcePoolMetadataProvider( + DataSourcePoolMetadataProviders provider = new DataSourcePoolMetadataProviders( Arrays.asList(this.firstProvider, this.secondProvider)); assertSame(this.first, provider.getDataSourcePoolMetadata(this.firstDataSource)); assertSame(this.second, provider.getDataSourcePoolMetadata(this.secondDataSource)); assertNull(provider.getDataSourcePoolMetadata(this.unknownDataSource)); } - @Test - public void addProvider() { - CompositeDataSourcePoolMetadataProvider provider = new CompositeDataSourcePoolMetadataProvider(); - assertNull(provider.getDataSourcePoolMetadata(this.firstDataSource)); - provider.addDataSourceMetadataProvider(this.firstProvider); - assertSame(this.first, provider.getDataSourcePoolMetadata(this.firstDataSource)); - } - }