From 754b18230e03ac0ac509b54a5e7cec2ad4e32d31 Mon Sep 17 00:00:00 2001 From: wenshao Date: Wed, 7 Sep 2011 06:30:09 +0000 Subject: [PATCH] =?UTF-8?q?=E7=9B=91=E6=8E=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: http://code.alibabatech.com/svn/druid/trunk@672 b9813039-fb51-4c41-a8b9-e21c2acb5095 --- .../java/com/alibaba/druid/pool/DruidDataSource.java | 10 +++------- .../DruidDataSourceStatManager.java} | 11 ++++++----- .../druid/stat/DruidDataSourceStatManagerMBean.java | 6 ++++++ .../java/com/alibaba/druid/stat/JdbcStatManager.java | 6 +++--- 4 files changed, 18 insertions(+), 15 deletions(-) rename src/main/java/com/alibaba/druid/{pool/Global.java => stat/DruidDataSourceStatManager.java} (79%) create mode 100644 src/main/java/com/alibaba/druid/stat/DruidDataSourceStatManagerMBean.java diff --git a/src/main/java/com/alibaba/druid/pool/DruidDataSource.java b/src/main/java/com/alibaba/druid/pool/DruidDataSource.java index f21e6ebc74..86e407ab10 100644 --- a/src/main/java/com/alibaba/druid/pool/DruidDataSource.java +++ b/src/main/java/com/alibaba/druid/pool/DruidDataSource.java @@ -23,7 +23,6 @@ import java.util.Arrays; import java.util.Date; import java.util.List; import java.util.Properties; -import java.util.Set; import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeUnit; import java.util.concurrent.locks.Condition; @@ -48,6 +47,7 @@ import com.alibaba.druid.pool.vendor.OracleValidConnectionChecker; import com.alibaba.druid.pool.vendor.SybaseExceptionSorter; import com.alibaba.druid.proxy.DruidDriver; import com.alibaba.druid.proxy.jdbc.DataSourceProxyConfig; +import com.alibaba.druid.stat.DruidDataSourceStatManager; import com.alibaba.druid.util.JdbcUtils; /** @@ -224,7 +224,7 @@ public class DruidDataSource extends DruidAbstractDataSource implements DruidDat inited = true; createdTime = new Date(); - Global.add(this); + DruidDataSourceStatManager.add(this); if (connectError != null && poolingCount == 0) { throw connectError; @@ -497,7 +497,7 @@ public class DruidDataSource extends DruidAbstractDataSource implements DruidDat } } poolingCount = 0; - Global.remove(this); + DruidDataSourceStatManager.remove(this); enable = false; notEmpty.signalAll(); @@ -796,10 +796,6 @@ public class DruidDataSource extends DruidAbstractDataSource implements DruidDat return names; } - public static Set getInstances() { - return Global.getInstances(); - } - public int getRawDriverMajorVersion() { int version = -1; if (this.driver != null) { diff --git a/src/main/java/com/alibaba/druid/pool/Global.java b/src/main/java/com/alibaba/druid/stat/DruidDataSourceStatManager.java similarity index 79% rename from src/main/java/com/alibaba/druid/pool/Global.java rename to src/main/java/com/alibaba/druid/stat/DruidDataSourceStatManager.java index 6eb0dd8b99..9906faa3ad 100644 --- a/src/main/java/com/alibaba/druid/pool/Global.java +++ b/src/main/java/com/alibaba/druid/stat/DruidDataSourceStatManager.java @@ -1,23 +1,24 @@ -package com.alibaba.druid.pool; +package com.alibaba.druid.stat; import java.util.Set; +import com.alibaba.druid.pool.DruidDataSource; import com.alibaba.druid.util.ConcurrentIdentityHashMap; -public class Global { +public class DruidDataSourceStatManager implements DruidDataSourceStatManagerMBean { // global instances private static final Object PRESENT = new Object(); private static final ConcurrentIdentityHashMap instances = new ConcurrentIdentityHashMap(); - + public static void add(DruidDataSource dataSource) { instances.put(dataSource, PRESENT); } - + public static void remove(DruidDataSource dataSource) { instances.remove(dataSource); } - + public static Set getInstances() { return instances.keySet(); } diff --git a/src/main/java/com/alibaba/druid/stat/DruidDataSourceStatManagerMBean.java b/src/main/java/com/alibaba/druid/stat/DruidDataSourceStatManagerMBean.java new file mode 100644 index 0000000000..f4039525b3 --- /dev/null +++ b/src/main/java/com/alibaba/druid/stat/DruidDataSourceStatManagerMBean.java @@ -0,0 +1,6 @@ +package com.alibaba.druid.stat; + + +public interface DruidDataSourceStatManagerMBean { + +} diff --git a/src/main/java/com/alibaba/druid/stat/JdbcStatManager.java b/src/main/java/com/alibaba/druid/stat/JdbcStatManager.java index 3bc9f6b4aa..89529d3cc3 100644 --- a/src/main/java/com/alibaba/druid/stat/JdbcStatManager.java +++ b/src/main/java/com/alibaba/druid/stat/JdbcStatManager.java @@ -249,7 +249,7 @@ public class JdbcStatManager implements JdbcStatManagerMBean { } } - final Set dataSources = DruidDataSource.getInstances(); + final Set dataSources = DruidDataSourceStatManager.getInstances(); for (DruidDataSource dataSource : dataSources) { data.put(dataSource.getCompositeData()); } @@ -298,7 +298,7 @@ public class JdbcStatManager implements JdbcStatManagerMBean { } } - for (DruidDataSource instance : DruidDataSource.getInstances()) { + for (DruidDataSource instance : DruidDataSourceStatManager.getInstances()) { for (Filter filter : instance.getProxyFilters()) { if (filter instanceof StatFilter) { StatFilter countFilter = (StatFilter) filter; @@ -332,7 +332,7 @@ public class JdbcStatManager implements JdbcStatManagerMBean { } } - for (DruidDataSource instance : DruidDataSource.getInstances()) { + for (DruidDataSource instance : DruidDataSourceStatManager.getInstances()) { for (Filter filter : instance.getProxyFilters()) { if (filter instanceof StatFilter) { StatFilter countFilter = (StatFilter) filter;