Commit 4c8d35db authored by Phillip Webb's avatar Phillip Webb

Rename CompositeDataSourcePoolMetadataProvider

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