diff --git a/src/main/java/com/alibaba/druid/pool/DruidC3P0WrapDataSource.java b/src/main/java/com/alibaba/druid/pool/DruidC3P0WrapDataSource.java index 758040b208..bd9cb54630 100644 --- a/src/main/java/com/alibaba/druid/pool/DruidC3P0WrapDataSource.java +++ b/src/main/java/com/alibaba/druid/pool/DruidC3P0WrapDataSource.java @@ -6,7 +6,7 @@ import java.sql.SQLException; import javax.sql.DataSource; -public class DruidC3P0WrapDataSource implements DataSource { +public class DruidC3P0WrapDataSource implements DataSource, DruidC3P0WrapDataSourceMBean { private DruidDataSource dataSource; @@ -159,6 +159,28 @@ public class DruidC3P0WrapDataSource implements DataSource { dataSource.setValidationQuery(preferredTestQuery); } + // ///////////////// + + @Override + public boolean isEnable() { + return dataSource.isEnable(); + } + + @Override + public void shrink() { + dataSource.shrink(); + } + + @Override + public int getWaitThreadCount() { + return dataSource.getWaitThreadCount(); + } + + @Override + public int getLockQueueLength() { + return dataSource.getLockQueueLength(); + } + // /////////////// private int maxStatementsPerConnection; @@ -353,6 +375,4 @@ public class DruidC3P0WrapDataSource implements DataSource { this.breakAfterAcquireFailure = breakAfterAcquireFailure; } - // //////////////// - } diff --git a/src/main/java/com/alibaba/druid/pool/DruidC3P0WrapDataSourceMBean.java b/src/main/java/com/alibaba/druid/pool/DruidC3P0WrapDataSourceMBean.java new file mode 100644 index 0000000000..8f96f3dea8 --- /dev/null +++ b/src/main/java/com/alibaba/druid/pool/DruidC3P0WrapDataSourceMBean.java @@ -0,0 +1,38 @@ +package com.alibaba.druid.pool; + +public interface DruidC3P0WrapDataSourceMBean { + + String getUser(); + + int getCheckoutTimeout(); + + boolean isAutoCommitOnClose(); + + int getIdleConnectionTestPeriod(); + + int getInitialPoolSize(); + + int getMaxIdleTime(); + + int getMaxPoolSize(); + + int getMinPoolSize(); + + boolean isTestConnectionOnCheckout(); + + boolean isTestConnectionOnCheckin(); + + String getPreferredTestQuery(); + + // ////////// + + boolean isEnable(); + + void shrink(); + + String toString(); + + int getWaitThreadCount(); + + int getLockQueueLength(); +}