From cc0fdd7ffe37ee54ec27c1589df6b3c5a4fa08f4 Mon Sep 17 00:00:00 2001 From: wenshao Date: Mon, 27 May 2013 08:45:12 +0800 Subject: [PATCH] improve dynamic config support for DruidDataSourceStatLogger --- .../alibaba/druid/pool/DruidDataSource.java | 4 ++++ .../druid/pool/DruidDataSourceStatLogger.java | 4 ++++ .../pool/DruidDataSourceStatLoggerAdapter.java | 18 ++++++++++++++++++ .../pool/DruidDataSourceStatLoggerImpl.java | 12 +++++++++++- 4 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 src/main/java/com/alibaba/druid/pool/DruidDataSourceStatLoggerAdapter.java diff --git a/src/main/java/com/alibaba/druid/pool/DruidDataSource.java b/src/main/java/com/alibaba/druid/pool/DruidDataSource.java index 924f68b71a..4e2aa98a03 100644 --- a/src/main/java/com/alibaba/druid/pool/DruidDataSource.java +++ b/src/main/java/com/alibaba/druid/pool/DruidDataSource.java @@ -429,6 +429,10 @@ public class DruidDataSource extends DruidAbstractDataSource implements DruidDat if (exceptionSorter != null) { exceptionSorter.configFromProperties(properties); } + + if (statLogger != null) { + statLogger.configFromProperties(properties); + } } this.connectProperties = properties; diff --git a/src/main/java/com/alibaba/druid/pool/DruidDataSourceStatLogger.java b/src/main/java/com/alibaba/druid/pool/DruidDataSourceStatLogger.java index 80b46da108..20cc09b4f7 100644 --- a/src/main/java/com/alibaba/druid/pool/DruidDataSourceStatLogger.java +++ b/src/main/java/com/alibaba/druid/pool/DruidDataSourceStatLogger.java @@ -15,7 +15,11 @@ */ package com.alibaba.druid.pool; +import java.util.Properties; + public interface DruidDataSourceStatLogger { void log(DruidDataSourceStatValue statValue); + + void configFromProperties(Properties properties); } diff --git a/src/main/java/com/alibaba/druid/pool/DruidDataSourceStatLoggerAdapter.java b/src/main/java/com/alibaba/druid/pool/DruidDataSourceStatLoggerAdapter.java new file mode 100644 index 0000000000..8338e9b2ad --- /dev/null +++ b/src/main/java/com/alibaba/druid/pool/DruidDataSourceStatLoggerAdapter.java @@ -0,0 +1,18 @@ +package com.alibaba.druid.pool; + +import java.util.Properties; + + +public abstract class DruidDataSourceStatLoggerAdapter implements DruidDataSourceStatLogger { + + @Override + public void log(DruidDataSourceStatValue statValue) { + + } + + @Override + public void configFromProperties(Properties properties) { + + } + +} diff --git a/src/main/java/com/alibaba/druid/pool/DruidDataSourceStatLoggerImpl.java b/src/main/java/com/alibaba/druid/pool/DruidDataSourceStatLoggerImpl.java index fbd6644606..326c6967e4 100644 --- a/src/main/java/com/alibaba/druid/pool/DruidDataSourceStatLoggerImpl.java +++ b/src/main/java/com/alibaba/druid/pool/DruidDataSourceStatLoggerImpl.java @@ -20,15 +20,25 @@ import static com.alibaba.druid.util.JdbcSqlStatUtils.rtrim; import java.util.ArrayList; import java.util.LinkedHashMap; import java.util.Map; +import java.util.Properties; import com.alibaba.druid.stat.JdbcSqlStatValue; import com.alibaba.druid.support.json.JSONUtils; import com.alibaba.druid.support.logging.Log; import com.alibaba.druid.support.logging.LogFactory; -public class DruidDataSourceStatLoggerImpl implements DruidDataSourceStatLogger { +public class DruidDataSourceStatLoggerImpl extends DruidDataSourceStatLoggerAdapter { private static Log LOG = LogFactory.getLog(DruidDataSourceStatLoggerImpl.class); + + public DruidDataSourceStatLoggerImpl() { + this.configFromProperties(System.getProperties()); + } + + @Override + public void configFromProperties(Properties properties) { + + } @Override public void log(DruidDataSourceStatValue statValue) {