From e56be6cf3d329c950bcdd2ec42dbd85dd40bdfa8 Mon Sep 17 00:00:00 2001 From: Phillip Webb Date: Mon, 1 Sep 2014 11:06:02 -0700 Subject: [PATCH] DataSourceMetadata -> DataSourcePoolMetadata Rename DataSourceMetadata to DataSourcePoolMetadata --- .../DataSourceMetricsAutoConfiguration.java | 8 +-- .../HealthIndicatorAutoConfiguration.java | 37 +++++----- .../endpoint/DataSourcePublicMetrics.java | 26 +++---- ...HealthIndicatorAutoConfigurationTests.java | 4 +- ...va => AbstractDataSourcePoolMetadata.java} | 14 ++-- ...=> CommonsDbcpDataSourcePoolMetadata.java} | 14 ++-- .../CompositeDataSourceMetadataProvider.java | 70 ------------------- ...mpositeDataSourcePoolMetadataProvider.java | 70 +++++++++++++++++++ ...adata.java => DataSourcePoolMetadata.java} | 14 ++-- ...va => DataSourcePoolMetadataProvider.java} | 8 +-- ...cePoolMetadataProvidersConfiguration.java} | 38 +++++----- ...java => HikariDataSourcePoolMetadata.java} | 14 ++-- ...java => TomcatDataSourcePoolMetadata.java} | 12 ++-- ... AbstractDataSourcePoolMetadataTests.java} | 20 +++--- ...mmonsDbcpDataSourcePoolMetadataTests.java} | 32 ++++----- ...positeDataSourceMetadataProviderTests.java | 28 ++++---- ...=> HikariDataSourcePoolMetadataTests.java} | 14 ++-- ...=> TomcatDataSourcePoolMetadataTests.java} | 14 ++-- 18 files changed, 222 insertions(+), 215 deletions(-) rename spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/{AbstractDataSourceMetadata.java => AbstractDataSourcePoolMetadata.java} (78%) rename spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/{CommonsDbcpDataSourceMetadata.java => CommonsDbcpDataSourcePoolMetadata.java} (76%) delete mode 100644 spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/CompositeDataSourceMetadataProvider.java create mode 100644 spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/CompositeDataSourcePoolMetadataProvider.java rename spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/{DataSourceMetadata.java => DataSourcePoolMetadata.java} (91%) rename spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/{DataSourceMetadataProvider.java => DataSourcePoolMetadataProvider.java} (75%) rename spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/{DataSourceMetadataProvidersConfiguration.java => DataSourcePoolMetadataProvidersConfiguration.java} (59%) rename spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/{HikariDataSourceMetadata.java => HikariDataSourcePoolMetadata.java} (81%) rename spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/{TomcatDataSourceMetadata.java => TomcatDataSourcePoolMetadata.java} (78%) rename spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jdbc/{AbstractDataSourceMetadataTests.java => AbstractDataSourcePoolMetadataTests.java} (88%) rename spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jdbc/{CommonsDbcpDataSourceMetadataTests.java => CommonsDbcpDataSourcePoolMetadataTests.java} (64%) rename spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jdbc/{HikariDataSourceMetadataTests.java => HikariDataSourcePoolMetadataTests.java} (75%) rename spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jdbc/{TomcatDataSourceMetadataTests.java => TomcatDataSourcePoolMetadataTests.java} (76%) diff --git a/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/autoconfigure/DataSourceMetricsAutoConfiguration.java b/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/autoconfigure/DataSourceMetricsAutoConfiguration.java index 52b129ff1fd..f675b6a591b 100644 --- a/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/autoconfigure/DataSourceMetricsAutoConfiguration.java +++ b/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/autoconfigure/DataSourceMetricsAutoConfiguration.java @@ -24,8 +24,8 @@ import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; -import org.springframework.boot.autoconfigure.jdbc.DataSourceMetadataProvider; -import org.springframework.boot.autoconfigure.jdbc.DataSourceMetadataProvidersConfiguration; +import org.springframework.boot.autoconfigure.jdbc.DataSourcePoolMetadataProvider; +import org.springframework.boot.autoconfigure.jdbc.DataSourcePoolMetadataProvidersConfiguration; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Import; @@ -38,11 +38,11 @@ import org.springframework.context.annotation.Import; */ @ConditionalOnBean(DataSource.class) @AutoConfigureAfter(DataSourceAutoConfiguration.class) -@Import(DataSourceMetadataProvidersConfiguration.class) +@Import(DataSourcePoolMetadataProvidersConfiguration.class) public class DataSourceMetricsAutoConfiguration { @Bean - @ConditionalOnBean(DataSourceMetadataProvider.class) + @ConditionalOnBean(DataSourcePoolMetadataProvider.class) @ConditionalOnMissingBean public DataSourcePublicMetrics dataSourcePublicMetrics() { return new DataSourcePublicMetrics(); 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 ec5b14844cd..903de26df2a 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 @@ -27,6 +27,7 @@ import org.apache.solr.client.solrj.SolrServer; import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; +import org.springframework.boot.actuate.health.ApplicationHealthIndicator; import org.springframework.boot.actuate.health.CompositeHealthIndicator; import org.springframework.boot.actuate.health.DataSourceHealthIndicator; import org.springframework.boot.actuate.health.HealthAggregator; @@ -36,7 +37,6 @@ import org.springframework.boot.actuate.health.OrderedHealthAggregator; import org.springframework.boot.actuate.health.RabbitHealthIndicator; import org.springframework.boot.actuate.health.RedisHealthIndicator; import org.springframework.boot.actuate.health.SolrHealthIndicator; -import org.springframework.boot.actuate.health.ApplicationHealthIndicator; import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.boot.autoconfigure.AutoConfigureBefore; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; @@ -44,10 +44,10 @@ import org.springframework.boot.autoconfigure.amqp.RabbitAutoConfiguration; 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.CompositeDataSourceMetadataProvider; +import org.springframework.boot.autoconfigure.jdbc.CompositeDataSourcePoolMetadataProvider; import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; -import org.springframework.boot.autoconfigure.jdbc.DataSourceMetadata; -import org.springframework.boot.autoconfigure.jdbc.DataSourceMetadataProvider; +import org.springframework.boot.autoconfigure.jdbc.DataSourcePoolMetadataProvider; +import org.springframework.boot.autoconfigure.jdbc.DataSourcePoolMetadata; import org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration; import org.springframework.boot.autoconfigure.mongo.MongoDataAutoConfiguration; import org.springframework.boot.autoconfigure.redis.RedisAutoConfiguration; @@ -103,33 +103,36 @@ public class HealthIndicatorAutoConfiguration { private Map dataSources; @Autowired(required = false) - private Collection metadataProviders = Collections.emptyList(); + private Collection metadataProviders = Collections + .emptyList(); @Bean @ConditionalOnMissingBean(name = "dbHealthIndicator") public HealthIndicator dbHealthIndicator() { - DataSourceMetadataProvider metadataProvider = - new CompositeDataSourceMetadataProvider(this.metadataProviders); + DataSourcePoolMetadataProvider metadataProvider = new CompositeDataSourcePoolMetadataProvider( + this.metadataProviders); if (this.dataSources.size() == 1) { - return createDataSourceHealthIndicator(metadataProvider, - this.dataSources.values().iterator().next()); + return createDataSourceHealthIndicator(metadataProvider, this.dataSources + .values().iterator().next()); } CompositeHealthIndicator composite = new CompositeHealthIndicator( this.healthAggregator); for (Map.Entry entry : this.dataSources.entrySet()) { - composite.addHealthIndicator(entry.getKey(), - createDataSourceHealthIndicator(metadataProvider, entry.getValue())); + composite.addHealthIndicator( + entry.getKey(), + createDataSourceHealthIndicator(metadataProvider, + entry.getValue())); } return composite; } - private DataSourceHealthIndicator createDataSourceHealthIndicator(DataSourceMetadataProvider provider, - DataSource dataSource) { - + private DataSourceHealthIndicator createDataSourceHealthIndicator( + DataSourcePoolMetadataProvider provider, DataSource dataSource) { String validationQuery = null; - DataSourceMetadata dataSourceMetadata = provider.getDataSourceMetadata(dataSource); - if (dataSourceMetadata != null) { - validationQuery = dataSourceMetadata.getValidationQuery(); + DataSourcePoolMetadata poolMetadata = provider + .getDataSourcePoolMetadata(dataSource); + if (poolMetadata != null) { + validationQuery = poolMetadata.getValidationQuery(); } return new DataSourceHealthIndicator(dataSource, validationQuery); } 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 d7de1b25fce..786a078d56f 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,9 +28,9 @@ 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.CompositeDataSourceMetadataProvider; -import org.springframework.boot.autoconfigure.jdbc.DataSourceMetadata; -import org.springframework.boot.autoconfigure.jdbc.DataSourceMetadataProvider; +import org.springframework.boot.autoconfigure.jdbc.CompositeDataSourcePoolMetadataProvider; +import org.springframework.boot.autoconfigure.jdbc.DataSourcePoolMetadata; +import org.springframework.boot.autoconfigure.jdbc.DataSourcePoolMetadataProvider; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.Primary; @@ -48,23 +48,23 @@ public class DataSourcePublicMetrics implements PublicMetrics { private ApplicationContext applicationContext; @Autowired - private Collection providers; + private Collection providers; - private final Map metadataByPrefix = new HashMap(); + private final Map metadataByPrefix = new HashMap(); @PostConstruct public void initialize() { DataSource primaryDataSource = getPrimaryDataSource(); - DataSourceMetadataProvider provider = new CompositeDataSourceMetadataProvider( + DataSourcePoolMetadataProvider provider = new CompositeDataSourcePoolMetadataProvider( this.providers); for (Map.Entry entry : this.applicationContext .getBeansOfType(DataSource.class).entrySet()) { String beanName = entry.getKey(); DataSource bean = entry.getValue(); String prefix = createPrefix(beanName, bean, bean.equals(primaryDataSource)); - DataSourceMetadata dataSourceMetadata = provider.getDataSourceMetadata(bean); - if (dataSourceMetadata != null) { - this.metadataByPrefix.put(prefix, dataSourceMetadata); + DataSourcePoolMetadata poolMetadata = provider.getDataSourcePoolMetadata(bean); + if (poolMetadata != null) { + this.metadataByPrefix.put(prefix, poolMetadata); } } } @@ -72,13 +72,13 @@ public class DataSourcePublicMetrics implements PublicMetrics { @Override public Collection> metrics() { Set> metrics = new LinkedHashSet>(); - for (Map.Entry entry : this.metadataByPrefix + for (Map.Entry entry : this.metadataByPrefix .entrySet()) { String prefix = entry.getKey(); prefix = (prefix.endsWith(".") ? prefix : prefix + "."); - DataSourceMetadata dataSourceMetadata = entry.getValue(); - addMetric(metrics, prefix + "active", dataSourceMetadata.getPoolSize()); - addMetric(metrics, prefix + "usage", dataSourceMetadata.getPoolUsage()); + DataSourcePoolMetadata dataSourceMetadata = entry.getValue(); + addMetric(metrics, prefix + "active", dataSourceMetadata.getActive()); + addMetric(metrics, prefix + "usage", dataSourceMetadata.getUsage()); } return metrics; } diff --git a/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/autoconfigure/HealthIndicatorAutoConfigurationTests.java b/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/autoconfigure/HealthIndicatorAutoConfigurationTests.java index c0bac2d0dde..3ee929c98f0 100644 --- a/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/autoconfigure/HealthIndicatorAutoConfigurationTests.java +++ b/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/autoconfigure/HealthIndicatorAutoConfigurationTests.java @@ -33,7 +33,7 @@ import org.springframework.boot.actuate.health.ApplicationHealthIndicator; import org.springframework.boot.autoconfigure.PropertyPlaceholderAutoConfiguration; import org.springframework.boot.autoconfigure.amqp.RabbitAutoConfiguration; import org.springframework.boot.autoconfigure.jdbc.DataSourceBuilder; -import org.springframework.boot.autoconfigure.jdbc.DataSourceMetadataProvidersConfiguration; +import org.springframework.boot.autoconfigure.jdbc.DataSourcePoolMetadataProvidersConfiguration; import org.springframework.boot.autoconfigure.jdbc.DataSourceProperties; import org.springframework.boot.autoconfigure.jdbc.EmbeddedDataSourceConfiguration; import org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration; @@ -167,7 +167,7 @@ public class HealthIndicatorAutoConfigurationTests { public void dataSourceHealthIndicatorWithCustomValidationQuery() { this.context = new AnnotationConfigApplicationContext(); this.context.register(PropertyPlaceholderAutoConfiguration.class, DataSourceProperties.class, - DataSourceConfig.class, DataSourceMetadataProvidersConfiguration.class, + DataSourceConfig.class, DataSourcePoolMetadataProvidersConfiguration.class, HealthIndicatorAutoConfiguration.class); EnvironmentTestUtils.addEnvironment(this.context, "spring.datasource.validation-query:SELECT from FOOBAR"); this.context.refresh(); diff --git a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/AbstractDataSourceMetadata.java b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/AbstractDataSourcePoolMetadata.java similarity index 78% rename from spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/AbstractDataSourceMetadata.java rename to spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/AbstractDataSourcePoolMetadata.java index 9986507b586..f356e165c69 100644 --- a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/AbstractDataSourceMetadata.java +++ b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/AbstractDataSourcePoolMetadata.java @@ -19,27 +19,27 @@ package org.springframework.boot.autoconfigure.jdbc; import javax.sql.DataSource; /** - * A base {@link DataSourceMetadata} implementation. + * A base {@link DataSourcePoolMetadata} implementation. * * @author Stephane Nicoll * @since 1.2.0 */ -public abstract class AbstractDataSourceMetadata implements - DataSourceMetadata { +public abstract class AbstractDataSourcePoolMetadata implements + DataSourcePoolMetadata { private final T dataSource; /** * Create an instance with the data source to use. */ - protected AbstractDataSourceMetadata(T dataSource) { + protected AbstractDataSourcePoolMetadata(T dataSource) { this.dataSource = dataSource; } @Override - public Float getPoolUsage() { - Integer maxSize = getMaxPoolSize(); - Integer currentSize = getPoolSize(); + public Float getUsage() { + Integer maxSize = getMax(); + Integer currentSize = getActive(); if (maxSize == null || currentSize == null) { return null; } diff --git a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/CommonsDbcpDataSourceMetadata.java b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/CommonsDbcpDataSourcePoolMetadata.java similarity index 76% rename from spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/CommonsDbcpDataSourceMetadata.java rename to spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/CommonsDbcpDataSourcePoolMetadata.java index 4089c9bcaa9..ae735730f9d 100644 --- a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/CommonsDbcpDataSourceMetadata.java +++ b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/CommonsDbcpDataSourcePoolMetadata.java @@ -21,30 +21,30 @@ import javax.sql.DataSource; import org.apache.commons.dbcp.BasicDataSource; /** - * {@link DataSourceMetadata} for a Apache Commons DBCP {@link DataSource}. + * {@link DataSourcePoolMetadata} for a Apache Commons DBCP {@link DataSource}. * * @author Stephane Nicoll * @since 1.2.0 */ -public class CommonsDbcpDataSourceMetadata extends - AbstractDataSourceMetadata { +public class CommonsDbcpDataSourcePoolMetadata extends + AbstractDataSourcePoolMetadata { - public CommonsDbcpDataSourceMetadata(BasicDataSource dataSource) { + public CommonsDbcpDataSourcePoolMetadata(BasicDataSource dataSource) { super(dataSource); } @Override - public Integer getPoolSize() { + public Integer getActive() { return getDataSource().getNumActive(); } @Override - public Integer getMaxPoolSize() { + public Integer getMax() { return getDataSource().getMaxActive(); } @Override - public Integer getMinPoolSize() { + public Integer getMin() { return getDataSource().getMinIdle(); } diff --git a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/CompositeDataSourceMetadataProvider.java b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/CompositeDataSourceMetadataProvider.java deleted file mode 100644 index 1a794f793bf..00000000000 --- a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/CompositeDataSourceMetadataProvider.java +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Copyright 2012-2014 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. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.springframework.boot.autoconfigure.jdbc; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; - -import javax.sql.DataSource; - -/** - * A {@link DataSourceMetadataProvider} implementation that returns the first - * {@link DataSourceMetadata} that is found by one of its delegate. - * - * @author Stephane Nicoll - * @since 1.2.0 - */ -public class CompositeDataSourceMetadataProvider implements DataSourceMetadataProvider { - - private final List providers; - - /** - * Create a {@link CompositeDataSourceMetadataProvider} instance with no delegate. - */ - public CompositeDataSourceMetadataProvider() { - this(new ArrayList()); - } - - /** - * Create a {@link CompositeDataSourceMetadataProvider} instance with an initial - * collection of delegates to use. - */ - public CompositeDataSourceMetadataProvider( - Collection providers) { - this.providers = new ArrayList(providers); - } - - @Override - public DataSourceMetadata getDataSourceMetadata(DataSource dataSource) { - for (DataSourceMetadataProvider provider : this.providers) { - DataSourceMetadata metadata = provider.getDataSourceMetadata(dataSource); - if (metadata != null) { - return metadata; - } - } - return null; - } - - /** - * Add a {@link DataSourceMetadataProvider} delegate to the list. - */ - public void addDataSourceMetadataProvider(DataSourceMetadataProvider provider) { - this.providers.add(provider); - } - -} diff --git a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/CompositeDataSourcePoolMetadataProvider.java b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/CompositeDataSourcePoolMetadataProvider.java new file mode 100644 index 00000000000..5f0de67da5a --- /dev/null +++ b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/CompositeDataSourcePoolMetadataProvider.java @@ -0,0 +1,70 @@ +/* + * Copyright 2012-2014 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. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.boot.autoconfigure.jdbc; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +import javax.sql.DataSource; + +/** + * A {@link DataSourcePoolMetadataProvider} implementation that returns the first + * {@link DataSourcePoolMetadata} that is found by one of its delegate. + * + * @author Stephane Nicoll + * @since 1.2.0 + */ +public class CompositeDataSourcePoolMetadataProvider 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 + * collection of delegates to use. + */ + public CompositeDataSourcePoolMetadataProvider( + Collection providers) { + this.providers = new ArrayList(providers); + } + + @Override + public DataSourcePoolMetadata getDataSourcePoolMetadata(DataSource dataSource) { + for (DataSourcePoolMetadataProvider provider : this.providers) { + DataSourcePoolMetadata metadata = provider.getDataSourcePoolMetadata(dataSource); + if (metadata != null) { + return metadata; + } + } + 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/main/java/org/springframework/boot/autoconfigure/jdbc/DataSourceMetadata.java b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/DataSourcePoolMetadata.java similarity index 91% rename from spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/DataSourceMetadata.java rename to spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/DataSourcePoolMetadata.java index 0ed3ca5914a..18c3d8d0e50 100644 --- a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/DataSourceMetadata.java +++ b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/DataSourcePoolMetadata.java @@ -19,13 +19,13 @@ package org.springframework.boot.autoconfigure.jdbc; import javax.sql.DataSource; /** - * Provides access meta-data that is commonly available from most {@link DataSource} - * implementations. + * Provides access meta-data that is commonly available from most polled + * {@link DataSource} implementations. * * @author Stephane Nicoll * @since 1.2.0 */ -public interface DataSourceMetadata { +public interface DataSourcePoolMetadata { /** * Return the usage of the pool as value between 0 and 1 (or -1 if the pool is not @@ -38,26 +38,26 @@ public interface DataSourceMetadata { * This may also return {@code null} if the data source does not provide the necessary * information to compute the poll usage. */ - Float getPoolUsage(); + Float getUsage(); /** * Return the current number of active connections that have been allocated from the * data source or {@code null} if that information is not available. */ - Integer getPoolSize(); + Integer getActive(); /** * Return the maximum number of active connections that can be allocated at the same * time or {@code -1} if there is no limit. Can also return {@code null} if that * information is not available. */ - Integer getMaxPoolSize(); + Integer getMax(); /** * Return the minimum number of idle connections in the pool or {@code null} if that * information is not available. */ - Integer getMinPoolSize(); + Integer getMin(); /** * Return the query to use to validate that a connection is valid or {@code null} if diff --git a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/DataSourceMetadataProvider.java b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/DataSourcePoolMetadataProvider.java similarity index 75% rename from spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/DataSourceMetadataProvider.java rename to spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/DataSourcePoolMetadataProvider.java index 178667c2d1f..49fe295a1c3 100644 --- a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/DataSourceMetadataProvider.java +++ b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/DataSourcePoolMetadataProvider.java @@ -19,17 +19,17 @@ package org.springframework.boot.autoconfigure.jdbc; import javax.sql.DataSource; /** - * Provide a {@link DataSourceMetadata} based on a {@link DataSource}. + * Provide a {@link DataSourcePoolMetadata} based on a {@link DataSource}. * * @author Stephane Nicoll * @since 1.2.0 */ -public interface DataSourceMetadataProvider { +public interface DataSourcePoolMetadataProvider { /** - * Return the {@link DataSourceMetadata} instance able to manage the specified + * Return the {@link DataSourcePoolMetadata} instance able to manage the specified * {@link DataSource} or {@code null} if the given data source could not be handled. */ - DataSourceMetadata getDataSourceMetadata(DataSource dataSource); + DataSourcePoolMetadata getDataSourcePoolMetadata(DataSource dataSource); } diff --git a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/DataSourceMetadataProvidersConfiguration.java b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/DataSourcePoolMetadataProvidersConfiguration.java similarity index 59% rename from spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/DataSourceMetadataProvidersConfiguration.java rename to spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/DataSourcePoolMetadataProvidersConfiguration.java index ac3cf39482f..92646ef0dc6 100644 --- a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/DataSourceMetadataProvidersConfiguration.java +++ b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/DataSourcePoolMetadataProvidersConfiguration.java @@ -26,26 +26,27 @@ import org.springframework.context.annotation.Configuration; import com.zaxxer.hikari.HikariDataSource; /** - * Register the {@link DataSourceMetadataProvider} instances for the supported data + * Register the {@link DataSourcePoolMetadataProvider} instances for the supported data * sources. * * @author Stephane Nicoll * @since 1.2.0 */ @Configuration -public class DataSourceMetadataProvidersConfiguration { +public class DataSourcePoolMetadataProvidersConfiguration { @Configuration @ConditionalOnClass(org.apache.tomcat.jdbc.pool.DataSource.class) - static class TomcatDataSourceProviderConfiguration { + static class TomcatDataSourcePoolMetadataProviderConfiguration { @Bean - public DataSourceMetadataProvider tomcatDataSourceProvider() { - return new DataSourceMetadataProvider() { + public DataSourcePoolMetadataProvider tomcatPoolDataSourceMetadataProvider() { + return new DataSourcePoolMetadataProvider() { @Override - public DataSourceMetadata getDataSourceMetadata(DataSource dataSource) { + public DataSourcePoolMetadata getDataSourcePoolMetadata( + DataSource dataSource) { if (dataSource instanceof org.apache.tomcat.jdbc.pool.DataSource) { - return new TomcatDataSourceMetadata( + return new TomcatDataSourcePoolMetadata( (org.apache.tomcat.jdbc.pool.DataSource) dataSource); } return null; @@ -57,15 +58,17 @@ public class DataSourceMetadataProvidersConfiguration { @Configuration @ConditionalOnClass(HikariDataSource.class) - static class HikariDataSourceProviderConfiguration { + static class HikariPoolDataSourceMetadataProviderConfiguration { @Bean - public DataSourceMetadataProvider hikariDataSourceProvider() { - return new DataSourceMetadataProvider() { + public DataSourcePoolMetadataProvider hikariPoolDataSourceMetadataProvider() { + return new DataSourcePoolMetadataProvider() { @Override - public DataSourceMetadata getDataSourceMetadata(DataSource dataSource) { + public DataSourcePoolMetadata getDataSourcePoolMetadata( + DataSource dataSource) { if (dataSource instanceof HikariDataSource) { - return new HikariDataSourceMetadata((HikariDataSource) dataSource); + return new HikariDataSourcePoolMetadata( + (HikariDataSource) dataSource); } return null; } @@ -76,15 +79,16 @@ public class DataSourceMetadataProvidersConfiguration { @Configuration @ConditionalOnClass(BasicDataSource.class) - static class CommonsDbcpDataSourceProviderConfiguration { + static class CommonsDbcpPoolDataSourceMetadataProviderConfiguration { @Bean - public DataSourceMetadataProvider commonsDbcpDataSourceProvider() { - return new DataSourceMetadataProvider() { + public DataSourcePoolMetadataProvider commonsDbcpPoolDataSourceMetadataProvider() { + return new DataSourcePoolMetadataProvider() { @Override - public DataSourceMetadata getDataSourceMetadata(DataSource dataSource) { + public DataSourcePoolMetadata getDataSourcePoolMetadata( + DataSource dataSource) { if (dataSource instanceof BasicDataSource) { - return new CommonsDbcpDataSourceMetadata( + return new CommonsDbcpDataSourcePoolMetadata( (BasicDataSource) dataSource); } return null; diff --git a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/HikariDataSourceMetadata.java b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/HikariDataSourcePoolMetadata.java similarity index 81% rename from spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/HikariDataSourceMetadata.java rename to spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/HikariDataSourcePoolMetadata.java index 140a45cbab6..4812e44a1fc 100644 --- a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/HikariDataSourceMetadata.java +++ b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/HikariDataSourcePoolMetadata.java @@ -24,20 +24,20 @@ import com.zaxxer.hikari.HikariDataSource; import com.zaxxer.hikari.pool.HikariPool; /** - * {@link DataSourceMetadata} for a Hikari {@link DataSource}. + * {@link DataSourcePoolMetadata} for a Hikari {@link DataSource}. * * @author Stephane Nicoll * @since 1.2.0 */ -public class HikariDataSourceMetadata extends - AbstractDataSourceMetadata { +public class HikariDataSourcePoolMetadata extends + AbstractDataSourcePoolMetadata { - public HikariDataSourceMetadata(HikariDataSource dataSource) { + public HikariDataSourcePoolMetadata(HikariDataSource dataSource) { super(dataSource); } @Override - public Integer getPoolSize() { + public Integer getActive() { try { return getHikariPool().getActiveConnections(); } @@ -52,12 +52,12 @@ public class HikariDataSourceMetadata extends } @Override - public Integer getMaxPoolSize() { + public Integer getMax() { return getDataSource().getMaximumPoolSize(); } @Override - public Integer getMinPoolSize() { + public Integer getMin() { return getDataSource().getMinimumIdle(); } diff --git a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/TomcatDataSourceMetadata.java b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/TomcatDataSourcePoolMetadata.java similarity index 78% rename from spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/TomcatDataSourceMetadata.java rename to spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/TomcatDataSourcePoolMetadata.java index 20a178cecea..87f7f3e23cb 100644 --- a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/TomcatDataSourceMetadata.java +++ b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/TomcatDataSourcePoolMetadata.java @@ -20,29 +20,29 @@ import org.apache.tomcat.jdbc.pool.ConnectionPool; import org.apache.tomcat.jdbc.pool.DataSource; /** - * {@link DataSourceMetadata} for a Tomcat {@link DataSource}. + * {@link DataSourcePoolMetadata} for a Tomcat {@link DataSource}. * * @author Stephane Nicoll */ -public class TomcatDataSourceMetadata extends AbstractDataSourceMetadata { +public class TomcatDataSourcePoolMetadata extends AbstractDataSourcePoolMetadata { - public TomcatDataSourceMetadata(DataSource dataSource) { + public TomcatDataSourcePoolMetadata(DataSource dataSource) { super(dataSource); } @Override - public Integer getPoolSize() { + public Integer getActive() { ConnectionPool pool = getDataSource().getPool(); return (pool == null ? 0 : pool.getActive()); } @Override - public Integer getMaxPoolSize() { + public Integer getMax() { return getDataSource().getMaxActive(); } @Override - public Integer getMinPoolSize() { + public Integer getMin() { return getDataSource().getMinIdle(); } diff --git a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jdbc/AbstractDataSourceMetadataTests.java b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jdbc/AbstractDataSourcePoolMetadataTests.java similarity index 88% rename from spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jdbc/AbstractDataSourceMetadataTests.java rename to spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jdbc/AbstractDataSourcePoolMetadataTests.java index 41ba22d879a..3e158ea74e3 100644 --- a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jdbc/AbstractDataSourceMetadataTests.java +++ b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jdbc/AbstractDataSourcePoolMetadataTests.java @@ -27,11 +27,11 @@ import org.springframework.jdbc.core.JdbcTemplate; import static org.junit.Assert.assertEquals; /** - * Abstract base class for {@link DataSourceMetadata} tests. + * Abstract base class for {@link DataSourcePoolMetadata} tests. * * @author Stephane Nicoll */ -public abstract class AbstractDataSourceMetadataTests> { +public abstract class AbstractDataSourcePoolMetadataTests> { /** * Return a data source metadata instance with a min size of 0 and max size of 2. @@ -40,12 +40,12 @@ public abstract class AbstractDataSourceMetadataTests { +public class CommonsDbcpDataSourcePoolMetadataTests extends + AbstractDataSourcePoolMetadataTests { - private CommonsDbcpDataSourceMetadata dataSourceMetadata; + private CommonsDbcpDataSourcePoolMetadata dataSourceMetadata; @Before public void setup() { @@ -39,38 +39,38 @@ public class CommonsDbcpDataSourceMetadataTests extends } @Override - protected CommonsDbcpDataSourceMetadata getDataSourceMetadata() { + protected CommonsDbcpDataSourcePoolMetadata getDataSourceMetadata() { return this.dataSourceMetadata; } @Test public void getPoolUsageWithNoCurrent() { - CommonsDbcpDataSourceMetadata dsm = new CommonsDbcpDataSourceMetadata( + CommonsDbcpDataSourcePoolMetadata dsm = new CommonsDbcpDataSourcePoolMetadata( createDataSource()) { @Override - public Integer getPoolSize() { + public Integer getActive() { return null; } }; - assertNull(dsm.getPoolUsage()); + assertNull(dsm.getUsage()); } @Test public void getPoolUsageWithNoMax() { - CommonsDbcpDataSourceMetadata dsm = new CommonsDbcpDataSourceMetadata( + CommonsDbcpDataSourcePoolMetadata dsm = new CommonsDbcpDataSourcePoolMetadata( createDataSource()) { @Override - public Integer getMaxPoolSize() { + public Integer getMax() { return null; } }; - assertNull(dsm.getPoolUsage()); + assertNull(dsm.getUsage()); } @Test public void getPoolUsageWithUnlimitedPool() { - DataSourceMetadata unlimitedDataSource = createDataSourceMetadata(0, -1); - assertEquals(Float.valueOf(-1F), unlimitedDataSource.getPoolUsage()); + DataSourcePoolMetadata unlimitedDataSource = createDataSourceMetadata(0, -1); + assertEquals(Float.valueOf(-1F), unlimitedDataSource.getUsage()); } @Override @@ -78,15 +78,15 @@ public class CommonsDbcpDataSourceMetadataTests extends BasicDataSource dataSource = createDataSource(); dataSource.setValidationQuery("SELECT FROM FOO"); assertEquals("SELECT FROM FOO", - new CommonsDbcpDataSourceMetadata(dataSource).getValidationQuery()); + new CommonsDbcpDataSourcePoolMetadata(dataSource).getValidationQuery()); } - private CommonsDbcpDataSourceMetadata createDataSourceMetadata(int minSize, + private CommonsDbcpDataSourcePoolMetadata createDataSourceMetadata(int minSize, int maxSize) { BasicDataSource dataSource = createDataSource(); dataSource.setMinIdle(minSize); dataSource.setMaxActive(maxSize); - return new CommonsDbcpDataSourceMetadata(dataSource); + return new CommonsDbcpDataSourcePoolMetadata(dataSource); } private BasicDataSource createDataSource() { diff --git a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jdbc/CompositeDataSourceMetadataProviderTests.java b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jdbc/CompositeDataSourceMetadataProviderTests.java index 4b02a0f3903..bc50567397b 100644 --- a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jdbc/CompositeDataSourceMetadataProviderTests.java +++ b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jdbc/CompositeDataSourceMetadataProviderTests.java @@ -30,26 +30,26 @@ import static org.junit.Assert.assertSame; import static org.mockito.BDDMockito.given; /** - * Tests for {@link CompositeDataSourceMetadataProvider}. + * Tests for {@link CompositeDataSourcePoolMetadataProvider}. * * @author Stephane Nicoll */ public class CompositeDataSourceMetadataProviderTests { @Mock - private DataSourceMetadataProvider firstProvider; + private DataSourcePoolMetadataProvider firstProvider; @Mock - private DataSourceMetadata first; + private DataSourcePoolMetadata first; @Mock private DataSource firstDataSource; @Mock - private DataSourceMetadataProvider secondProvider; + private DataSourcePoolMetadataProvider secondProvider; @Mock - private DataSourceMetadata second; + private DataSourcePoolMetadata second; @Mock private DataSource secondDataSource; @@ -60,27 +60,27 @@ public class CompositeDataSourceMetadataProviderTests { @Before public void setup() { MockitoAnnotations.initMocks(this); - given(this.firstProvider.getDataSourceMetadata(this.firstDataSource)).willReturn( + given(this.firstProvider.getDataSourcePoolMetadata(this.firstDataSource)).willReturn( this.first); - given(this.firstProvider.getDataSourceMetadata(this.secondDataSource)) + given(this.firstProvider.getDataSourcePoolMetadata(this.secondDataSource)) .willReturn(this.second); } @Test public void createWithProviders() { - CompositeDataSourceMetadataProvider provider = new CompositeDataSourceMetadataProvider( + CompositeDataSourcePoolMetadataProvider provider = new CompositeDataSourcePoolMetadataProvider( Arrays.asList(this.firstProvider, this.secondProvider)); - assertSame(this.first, provider.getDataSourceMetadata(this.firstDataSource)); - assertSame(this.second, provider.getDataSourceMetadata(this.secondDataSource)); - assertNull(provider.getDataSourceMetadata(this.unknownDataSource)); + assertSame(this.first, provider.getDataSourcePoolMetadata(this.firstDataSource)); + assertSame(this.second, provider.getDataSourcePoolMetadata(this.secondDataSource)); + assertNull(provider.getDataSourcePoolMetadata(this.unknownDataSource)); } @Test public void addProvider() { - CompositeDataSourceMetadataProvider provider = new CompositeDataSourceMetadataProvider(); - assertNull(provider.getDataSourceMetadata(this.firstDataSource)); + CompositeDataSourcePoolMetadataProvider provider = new CompositeDataSourcePoolMetadataProvider(); + assertNull(provider.getDataSourcePoolMetadata(this.firstDataSource)); provider.addDataSourceMetadataProvider(this.firstProvider); - assertSame(this.first, provider.getDataSourceMetadata(this.firstDataSource)); + assertSame(this.first, provider.getDataSourcePoolMetadata(this.firstDataSource)); } } diff --git a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jdbc/HikariDataSourceMetadataTests.java b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jdbc/HikariDataSourcePoolMetadataTests.java similarity index 75% rename from spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jdbc/HikariDataSourceMetadataTests.java rename to spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jdbc/HikariDataSourcePoolMetadataTests.java index bac06bd32b6..7855e8b2b93 100644 --- a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jdbc/HikariDataSourceMetadataTests.java +++ b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jdbc/HikariDataSourcePoolMetadataTests.java @@ -23,22 +23,22 @@ import com.zaxxer.hikari.HikariDataSource; import static org.junit.Assert.assertEquals; /** - * Tests for {@link HikariDataSourceMetadata}. + * Tests for {@link HikariDataSourcePoolMetadata}. * * @author Stephane Nicoll */ -public class HikariDataSourceMetadataTests extends - AbstractDataSourceMetadataTests { +public class HikariDataSourcePoolMetadataTests extends + AbstractDataSourcePoolMetadataTests { - private HikariDataSourceMetadata dataSourceMetadata; + private HikariDataSourcePoolMetadata dataSourceMetadata; @Before public void setup() { - this.dataSourceMetadata = new HikariDataSourceMetadata(createDataSource(0, 2)); + this.dataSourceMetadata = new HikariDataSourcePoolMetadata(createDataSource(0, 2)); } @Override - protected HikariDataSourceMetadata getDataSourceMetadata() { + protected HikariDataSourcePoolMetadata getDataSourceMetadata() { return this.dataSourceMetadata; } @@ -47,7 +47,7 @@ public class HikariDataSourceMetadataTests extends HikariDataSource dataSource = createDataSource(0, 4); dataSource.setConnectionTestQuery("SELECT FROM FOO"); assertEquals("SELECT FROM FOO", - new HikariDataSourceMetadata(dataSource).getValidationQuery()); + new HikariDataSourcePoolMetadata(dataSource).getValidationQuery()); } private HikariDataSource createDataSource(int minSize, int maxSize) { diff --git a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jdbc/TomcatDataSourceMetadataTests.java b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jdbc/TomcatDataSourcePoolMetadataTests.java similarity index 76% rename from spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jdbc/TomcatDataSourceMetadataTests.java rename to spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jdbc/TomcatDataSourcePoolMetadataTests.java index 6b0f8e2b0c9..287d069ca5a 100644 --- a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jdbc/TomcatDataSourceMetadataTests.java +++ b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jdbc/TomcatDataSourcePoolMetadataTests.java @@ -22,22 +22,22 @@ import org.junit.Before; import static org.junit.Assert.assertEquals; /** - * Tests for {@link TomcatDataSourceMetadata}. + * Tests for {@link TomcatDataSourcePoolMetadata}. * * @author Stephane Nicoll */ -public class TomcatDataSourceMetadataTests extends - AbstractDataSourceMetadataTests { +public class TomcatDataSourcePoolMetadataTests extends + AbstractDataSourcePoolMetadataTests { - private TomcatDataSourceMetadata dataSourceMetadata; + private TomcatDataSourcePoolMetadata dataSourceMetadata; @Before public void setup() { - this.dataSourceMetadata = new TomcatDataSourceMetadata(createDataSource(0, 2)); + this.dataSourceMetadata = new TomcatDataSourcePoolMetadata(createDataSource(0, 2)); } @Override - protected TomcatDataSourceMetadata getDataSourceMetadata() { + protected TomcatDataSourcePoolMetadata getDataSourceMetadata() { return this.dataSourceMetadata; } @@ -46,7 +46,7 @@ public class TomcatDataSourceMetadataTests extends DataSource dataSource = createDataSource(0, 4); dataSource.setValidationQuery("SELECT FROM FOO"); assertEquals("SELECT FROM FOO", - new TomcatDataSourceMetadata(dataSource).getValidationQuery()); + new TomcatDataSourcePoolMetadata(dataSource).getValidationQuery()); } private DataSource createDataSource(int minSize, int maxSize) {