Fix #172 Further shadow runtime dependency on Codahale metrics from reflection performed by Spring and other IoC containers.

pull/192/head
Brett Wooldridge 10 years ago
parent f619fbfb06
commit 3cc501ee3c

@ -1,5 +1,10 @@
HikariCP Changes
Changes between 2.2.2 and 2.2.3
* Further shadow runtime dependency on Codahale metrics from reflection
performed by Spring and other IoC containers.
Changes between 2.2.0 and 2.2.2
* Fixed issue with pool initialization of MySQL after default value of

@ -35,7 +35,6 @@ import javax.sql.DataSource;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.codahale.metrics.MetricRegistry;
import com.zaxxer.hikari.metrics.CodaHaleShim;
import com.zaxxer.hikari.proxy.JavassistProxyFactory;
import com.zaxxer.hikari.util.PoolUtilities;
@ -84,7 +83,7 @@ public class HikariConfig implements HikariConfigMBean
private Properties dataSourceProperties;
private IConnectionCustomizer customizer;
private ThreadFactory threadFactory;
private MetricRegistry metricRegistry;
private Object metricRegistry;
static {
JavassistProxyFactory.initialize();
@ -439,7 +438,7 @@ public class HikariConfig implements HikariConfigMBean
*
* @return the codahale MetricRegistry instance
*/
public MetricRegistry getMetricRegistry()
public Object getMetricRegistry()
{
return metricRegistry;
}
@ -449,8 +448,11 @@ public class HikariConfig implements HikariConfigMBean
*
* @param metricRegistry the Codahale MetricRegistry to set
*/
public void setMetricRegistry(MetricRegistry metricRegistry)
public void setMetricRegistry(Object metricRegistry)
{
if (metricRegistry != null && !metricRegistry.getClass().getName().contains("MetricRegistry")) {
throw new IllegalArgumentException("Class must be an instance of com.codahale.metrics.MetricRegistry");
}
this.metricRegistry = metricRegistry;
}

@ -32,9 +32,9 @@ import static com.zaxxer.hikari.util.PoolUtilities.isJdbc40Compliant;
import static com.zaxxer.hikari.util.PoolUtilities.isJdbc41Compliant;
import static com.zaxxer.hikari.util.PoolUtilities.quietlyCloseConnection;
import static com.zaxxer.hikari.util.PoolUtilities.quietlySleep;
import static com.zaxxer.hikari.util.PoolUtilities.setQueryTimeout;
import static com.zaxxer.hikari.util.PoolUtilities.setNetworkTimeout;
import static com.zaxxer.hikari.util.PoolUtilities.setLoginTimeout;
import static com.zaxxer.hikari.util.PoolUtilities.setNetworkTimeout;
import static com.zaxxer.hikari.util.PoolUtilities.setQueryTimeout;
import java.sql.Connection;
import java.sql.SQLException;
@ -51,6 +51,7 @@ import javax.sql.DataSource;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.codahale.metrics.MetricRegistry;
import com.zaxxer.hikari.HikariConfig;
import com.zaxxer.hikari.IConnectionCustomizer;
import com.zaxxer.hikari.metrics.CodaHaleMetricsTracker;
@ -141,7 +142,7 @@ public final class HikariPool implements HikariPoolMBean, IBagStateListener
this.isIsolateInternalQueries = configuration.isIsolateInternalQueries();
this.isRecordMetrics = configuration.getMetricRegistry() != null;
this.metricsTracker = (isRecordMetrics ? new CodaHaleMetricsTracker(this, configuration.getMetricRegistry()) : new MetricsTracker(this));
this.metricsTracker = (isRecordMetrics ? new CodaHaleMetricsTracker(this, (MetricRegistry) configuration.getMetricRegistry()) : new MetricsTracker(this));
this.dataSource = initializeDataSource(configuration.getDataSourceClassName(), configuration.getDataSource(), configuration.getDataSourceProperties(), configuration.getJdbcUrl(), username, password);

@ -35,7 +35,6 @@ import javax.sql.DataSource;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.codahale.metrics.MetricRegistry;
import com.zaxxer.hikari.metrics.CodaHaleShim;
import com.zaxxer.hikari.proxy.JavassistProxyFactory;
import com.zaxxer.hikari.util.PoolUtilities;
@ -84,7 +83,7 @@ public class HikariConfig implements HikariConfigMBean
private Properties dataSourceProperties;
private IConnectionCustomizer customizer;
private ThreadFactory threadFactory;
private MetricRegistry metricRegistry;
private Object metricRegistry;
static {
JavassistProxyFactory.initialize();
@ -439,7 +438,7 @@ public class HikariConfig implements HikariConfigMBean
*
* @return the codahale MetricRegistry instance
*/
public MetricRegistry getMetricRegistry()
public Object getMetricRegistry()
{
return metricRegistry;
}
@ -449,8 +448,11 @@ public class HikariConfig implements HikariConfigMBean
*
* @param metricRegistry the Codahale MetricRegistry to set
*/
public void setMetricRegistry(MetricRegistry metricRegistry)
public void setMetricRegistry(Object metricRegistry)
{
if (metricRegistry != null && !metricRegistry.getClass().getName().contains("MetricRegistry")) {
throw new IllegalArgumentException("Class must be an instance of com.codahale.metrics.MetricRegistry");
}
this.metricRegistry = metricRegistry;
}

@ -31,9 +31,9 @@ import static com.zaxxer.hikari.util.PoolUtilities.isJdbc40Compliant;
import static com.zaxxer.hikari.util.PoolUtilities.isJdbc41Compliant;
import static com.zaxxer.hikari.util.PoolUtilities.quietlyCloseConnection;
import static com.zaxxer.hikari.util.PoolUtilities.quietlySleep;
import static com.zaxxer.hikari.util.PoolUtilities.setQueryTimeout;
import static com.zaxxer.hikari.util.PoolUtilities.setNetworkTimeout;
import static com.zaxxer.hikari.util.PoolUtilities.setLoginTimeout;
import static com.zaxxer.hikari.util.PoolUtilities.setNetworkTimeout;
import static com.zaxxer.hikari.util.PoolUtilities.setQueryTimeout;
import java.sql.Connection;
import java.sql.SQLException;
@ -50,6 +50,7 @@ import javax.sql.DataSource;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.codahale.metrics.MetricRegistry;
import com.zaxxer.hikari.HikariConfig;
import com.zaxxer.hikari.IConnectionCustomizer;
import com.zaxxer.hikari.metrics.CodaHaleMetricsTracker;
@ -140,7 +141,7 @@ public final class HikariPool implements HikariPoolMBean, IBagStateListener
this.isIsolateInternalQueries = configuration.isIsolateInternalQueries();
this.isRecordMetrics = configuration.getMetricRegistry() != null;
this.metricsTracker = (isRecordMetrics ? new CodaHaleMetricsTracker(this, configuration.getMetricRegistry()) : new MetricsTracker(this));
this.metricsTracker = (isRecordMetrics ? new CodaHaleMetricsTracker(this, (MetricRegistry) configuration.getMetricRegistry()) : new MetricsTracker(this));
this.dataSource = initializeDataSource(configuration.getDataSourceClassName(), configuration.getDataSource(), configuration.getDataSourceProperties(), configuration.getJdbcUrl(), username, password);

Loading…
Cancel
Save