mirror of
https://github.com/alibaba/druid.git
synced 2023-03-04 19:17:16 +00:00
DruidFilterUtils refactor
This commit is contained in:
@@ -59,7 +59,7 @@ import com.alibaba.druid.stat.JdbcStatManager;
|
||||
import com.alibaba.druid.support.logging.Log;
|
||||
import com.alibaba.druid.support.logging.LogFactory;
|
||||
import com.alibaba.druid.util.ConcurrentIdentityHashMap;
|
||||
import com.alibaba.druid.util.DruidLoaderUtils;
|
||||
import com.alibaba.druid.util.DruidFilterUtils;
|
||||
import com.alibaba.druid.util.Histogram;
|
||||
import com.alibaba.druid.util.IOUtils;
|
||||
import com.alibaba.druid.util.JdbcUtils;
|
||||
@@ -485,7 +485,7 @@ public abstract class DruidAbstractDataSource extends WrapperAdapter implements
|
||||
}
|
||||
|
||||
public void setValidConnectionCheckerClassName(String validConnectionCheckerClass) throws Exception {
|
||||
Class<?> clazz = DruidLoaderUtils.loadClass(validConnectionCheckerClass);
|
||||
Class<?> clazz = DruidFilterUtils.loadClass(validConnectionCheckerClass);
|
||||
ValidConnectionChecker validConnectionChecker = null;
|
||||
if (clazz != null) {
|
||||
validConnectionChecker = (ValidConnectionChecker) clazz.newInstance();
|
||||
@@ -713,7 +713,7 @@ public abstract class DruidAbstractDataSource extends WrapperAdapter implements
|
||||
}
|
||||
|
||||
public void setPasswordCallbackClassName(String passwordCallbackClassName) throws Exception {
|
||||
Class<?> clazz = DruidLoaderUtils.loadClass(passwordCallbackClassName);
|
||||
Class<?> clazz = DruidFilterUtils.loadClass(passwordCallbackClassName);
|
||||
if (clazz != null) {
|
||||
this.passwordCallback = (PasswordCallback) clazz.newInstance();
|
||||
} else {
|
||||
@@ -1012,7 +1012,7 @@ public abstract class DruidAbstractDataSource extends WrapperAdapter implements
|
||||
return;
|
||||
}
|
||||
|
||||
Class<?> clazz = DruidLoaderUtils.loadClass(exceptionSorter);
|
||||
Class<?> clazz = DruidFilterUtils.loadClass(exceptionSorter);
|
||||
if (clazz == null) {
|
||||
LOG.error("load exceptionSorter error : " + exceptionSorter);
|
||||
} else {
|
||||
@@ -1050,7 +1050,7 @@ public abstract class DruidAbstractDataSource extends WrapperAdapter implements
|
||||
String[] filterArray = filters.split("\\,");
|
||||
|
||||
for (String item : filterArray) {
|
||||
DruidLoaderUtils.loadFilter(this.filters, item);
|
||||
DruidFilterUtils.loadFilter(this.filters, item);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -12,7 +12,7 @@ import com.alibaba.druid.pool.ValidConnectionChecker;
|
||||
import com.alibaba.druid.proxy.jdbc.ConnectionProxy;
|
||||
import com.alibaba.druid.support.logging.Log;
|
||||
import com.alibaba.druid.support.logging.LogFactory;
|
||||
import com.alibaba.druid.util.DruidLoaderUtils;
|
||||
import com.alibaba.druid.util.DruidFilterUtils;
|
||||
import com.alibaba.druid.util.JdbcUtils;
|
||||
|
||||
public class MySqlValidConnectionChecker implements ValidConnectionChecker, Serializable {
|
||||
@@ -26,7 +26,7 @@ public class MySqlValidConnectionChecker implements ValidConnectionChecker, Seri
|
||||
|
||||
public MySqlValidConnectionChecker(){
|
||||
try {
|
||||
clazz = DruidLoaderUtils.loadClass("com.mysql.jdbc.Connection");
|
||||
clazz = DruidFilterUtils.loadClass("com.mysql.jdbc.Connection");
|
||||
ping = clazz.getMethod("ping");
|
||||
if (ping != null) {
|
||||
driverHasPingMethod = true;
|
||||
|
||||
+2
-2
@@ -33,7 +33,7 @@ import com.alibaba.druid.pool.ValidConnectionChecker;
|
||||
import com.alibaba.druid.proxy.jdbc.ConnectionProxy;
|
||||
import com.alibaba.druid.support.logging.Log;
|
||||
import com.alibaba.druid.support.logging.LogFactory;
|
||||
import com.alibaba.druid.util.DruidLoaderUtils;
|
||||
import com.alibaba.druid.util.DruidFilterUtils;
|
||||
import com.alibaba.druid.util.JdbcUtils;
|
||||
|
||||
public class OracleValidConnectionChecker implements ValidConnectionChecker, Serializable {
|
||||
@@ -48,7 +48,7 @@ public class OracleValidConnectionChecker implements ValidConnectionChecker, Ser
|
||||
|
||||
public OracleValidConnectionChecker(){
|
||||
try {
|
||||
clazz = DruidLoaderUtils.loadClass("oracle.jdbc.driver.OracleConnection");
|
||||
clazz = DruidFilterUtils.loadClass("oracle.jdbc.driver.OracleConnection");
|
||||
if (clazz != null) {
|
||||
ping = clazz.getMethod("pingDatabase", new Class[] { Integer.TYPE });
|
||||
} else {
|
||||
|
||||
@@ -22,8 +22,6 @@ import java.sql.DriverManager;
|
||||
import java.sql.DriverPropertyInfo;
|
||||
import java.sql.SQLException;
|
||||
import java.sql.SQLFeatureNotSupportedException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Properties;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.concurrent.ConcurrentMap;
|
||||
@@ -36,14 +34,13 @@ import javax.management.ObjectName;
|
||||
|
||||
import com.alibaba.druid.VERSION;
|
||||
import com.alibaba.druid.filter.Filter;
|
||||
import com.alibaba.druid.proxy.config.AbstractDruidFilterConfig;
|
||||
import com.alibaba.druid.proxy.jdbc.DataSourceProxy;
|
||||
import com.alibaba.druid.proxy.jdbc.DataSourceProxyConfig;
|
||||
import com.alibaba.druid.proxy.jdbc.DataSourceProxyImpl;
|
||||
import com.alibaba.druid.stat.JdbcStatManager;
|
||||
import com.alibaba.druid.support.logging.Log;
|
||||
import com.alibaba.druid.support.logging.LogFactory;
|
||||
import com.alibaba.druid.util.DruidLoaderUtils;
|
||||
import com.alibaba.druid.util.DruidFilterUtils;
|
||||
import com.alibaba.druid.util.JMXUtils;
|
||||
import com.alibaba.druid.util.JdbcUtils;
|
||||
|
||||
@@ -66,7 +63,7 @@ public class DruidDriver implements Driver, DruidDriverMBean {
|
||||
public final static String JMX_PREFIX = "jmx=";
|
||||
public final static String FILTERS_PREFIX = "filters=";
|
||||
|
||||
private final AtomicLong connectCount = new AtomicLong(0);
|
||||
private final AtomicLong connectCount = new AtomicLong(0);
|
||||
|
||||
private String acceptPrefix = DEFAULT_PREFIX;
|
||||
|
||||
@@ -86,7 +83,7 @@ public class DruidDriver implements Driver, DruidDriverMBean {
|
||||
|
||||
try {
|
||||
MBeanServer mbeanServer = ManagementFactory.getPlatformMBeanServer();
|
||||
|
||||
|
||||
ObjectName objectName = new ObjectName(MBEAN_NAME);
|
||||
if (!mbeanServer.isRegistered(objectName)) {
|
||||
mbeanServer.registerMBean(instance, objectName);
|
||||
@@ -158,12 +155,12 @@ public class DruidDriver implements Driver, DruidDriverMBean {
|
||||
Driver rawDriver = createDriver(config.getRawDriverClassName());
|
||||
|
||||
DataSourceProxyImpl newDataSource = new DataSourceProxyImpl(rawDriver, config);
|
||||
|
||||
|
||||
{
|
||||
String property = System.getProperty("druid.filters");
|
||||
if (property != null && property.length() > 0) {
|
||||
for (String filterItem : property.split(",")) {
|
||||
DruidLoaderUtils.loadFilter(config.getFilters(), filterItem);
|
||||
DruidFilterUtils.loadFilter(config.getFilters(), filterItem);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -176,7 +173,7 @@ public class DruidDriver implements Driver, DruidDriverMBean {
|
||||
}
|
||||
}
|
||||
|
||||
DataSourceProxy oldDataSource = proxyDataSources.putIfAbsent(url, newDataSource);
|
||||
DataSourceProxy oldDataSource = proxyDataSources.putIfAbsent(url, newDataSource);
|
||||
if (oldDataSource == null) {
|
||||
if (config.isJmxOption()) {
|
||||
JMXUtils.register("com.alibaba.druid:type=JdbcStat", JdbcStatManager.getInstance());
|
||||
@@ -193,8 +190,6 @@ public class DruidDriver implements Driver, DruidDriverMBean {
|
||||
|
||||
DataSourceProxyConfig config = new DataSourceProxyConfig();
|
||||
|
||||
List<AbstractDruidFilterConfig> druidFilterConfigList = new ArrayList<AbstractDruidFilterConfig>();
|
||||
|
||||
if (restUrl.startsWith(DRIVER_PREFIX)) {
|
||||
int pos = restUrl.indexOf(':', DRIVER_PREFIX.length());
|
||||
String driverText = restUrl.substring(DRIVER_PREFIX.length(), pos);
|
||||
@@ -208,14 +203,10 @@ public class DruidDriver implements Driver, DruidDriverMBean {
|
||||
int pos = restUrl.indexOf(':', FILTERS_PREFIX.length());
|
||||
String filtersText = restUrl.substring(FILTERS_PREFIX.length(), pos);
|
||||
for (String filterItem : filtersText.split(",")) {
|
||||
DruidLoaderUtils.loadFilter(config.getFilters(), filterItem);
|
||||
DruidFilterUtils.loadFilter(config.getFilters(), filterItem);
|
||||
}
|
||||
restUrl = restUrl.substring(pos + 1);
|
||||
}
|
||||
// 如果url中并无定义filter 采用配置
|
||||
if (config.getFilters().size() <= 0) {
|
||||
DruidLoaderUtils.loadFilter(config.getFilters(), druidFilterConfigList);
|
||||
}
|
||||
|
||||
if (restUrl.startsWith(NAME_PREFIX)) {
|
||||
int pos = restUrl.indexOf(':', NAME_PREFIX.length());
|
||||
@@ -244,7 +235,7 @@ public class DruidDriver implements Driver, DruidDriverMBean {
|
||||
}
|
||||
|
||||
public Driver createDriver(String className) throws SQLException {
|
||||
Class<?> rawDriverClass = DruidLoaderUtils.loadClass(className);
|
||||
Class<?> rawDriverClass = DruidFilterUtils.loadClass(className);
|
||||
|
||||
if (rawDriverClass == null) {
|
||||
throw new SQLException("jdbc-driver's class not found. '" + className + "'");
|
||||
@@ -309,7 +300,7 @@ public class DruidDriver implements Driver, DruidDriverMBean {
|
||||
public void resetStat() {
|
||||
connectCount.set(0);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public String getDruidVersion() {
|
||||
return VERSION.getVersionNumber();
|
||||
|
||||
@@ -0,0 +1,129 @@
|
||||
/*
|
||||
* Copyright 1999-2011 Alibaba Group Holding Ltd.
|
||||
*
|
||||
* 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 com.alibaba.druid.util;
|
||||
|
||||
import java.sql.SQLException;
|
||||
import java.util.List;
|
||||
|
||||
import com.alibaba.druid.filter.Filter;
|
||||
import com.alibaba.druid.filter.FilterManager;
|
||||
import com.alibaba.druid.support.logging.Log;
|
||||
import com.alibaba.druid.support.logging.LogFactory;
|
||||
|
||||
/**
|
||||
* druid loader utils
|
||||
*
|
||||
* @author gang.su
|
||||
*/
|
||||
public class DruidFilterUtils {
|
||||
|
||||
private final static Log LOG = LogFactory.getLog(DruidFilterUtils.class);
|
||||
|
||||
public static void loadFilter(List<Filter> filters, String filterName) throws SQLException {
|
||||
if (filterName.length() == 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
String filterClassNames = FilterManager.getFilter(filterName);
|
||||
|
||||
if (filterClassNames != null) {
|
||||
for (String filterClassName : filterClassNames.split(",")) {
|
||||
if (existsFilter(filters, filterClassName)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
Class<?> filterClass = loadClass(filterClassName);
|
||||
|
||||
if (filterClass == null) {
|
||||
LOG.error("load filter error, filter not found : " + filterClassName);
|
||||
continue;
|
||||
}
|
||||
|
||||
Filter filter;
|
||||
|
||||
try {
|
||||
filter = (Filter) filterClass.newInstance();
|
||||
} catch (InstantiationException e) {
|
||||
throw new SQLException("load managed jdbc driver event listener error. " + filterName, e);
|
||||
} catch (IllegalAccessException e) {
|
||||
throw new SQLException("load managed jdbc driver event listener error. " + filterName, e);
|
||||
}
|
||||
|
||||
filters.add(filter);
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
if (existsFilter(filters, filterName)) {
|
||||
return;
|
||||
}
|
||||
|
||||
Class<?> filterClass = loadClass(filterName);
|
||||
if (filterClass == null) {
|
||||
LOG.error("load filter error, filter not found : " + filterName);
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
Filter filter = (Filter) filterClass.newInstance();
|
||||
filters.add(filter);
|
||||
} catch (Exception e) {
|
||||
throw new SQLException("load managed jdbc driver event listener error. " + filterName, e);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 是否存在load
|
||||
*
|
||||
* @param filterList
|
||||
* @param filterClassName
|
||||
* @return
|
||||
*/
|
||||
private static boolean existsFilter(List<Filter> filterList, String filterClassName) {
|
||||
for (Filter filter : filterList) {
|
||||
String itemFilterClassName = filter.getClass().getName();
|
||||
if (itemFilterClassName.equalsIgnoreCase(filterClassName)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public static Class<?> loadClass(String className) {
|
||||
Class<?> clazz = null;
|
||||
|
||||
if (className == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
try {
|
||||
clazz = Thread.currentThread().getContextClassLoader().loadClass(className);
|
||||
} catch (ClassNotFoundException e) {
|
||||
|
||||
}
|
||||
|
||||
if (clazz != null) {
|
||||
return clazz;
|
||||
}
|
||||
|
||||
try {
|
||||
return Class.forName(className);
|
||||
} catch (ClassNotFoundException e) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,152 +0,0 @@
|
||||
/*
|
||||
* Copyright 1999-2011 Alibaba Group Holding Ltd.
|
||||
*
|
||||
* 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 com.alibaba.druid.util;
|
||||
|
||||
import java.sql.SQLException;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
|
||||
import com.alibaba.druid.filter.Filter;
|
||||
import com.alibaba.druid.filter.FilterManager;
|
||||
import com.alibaba.druid.proxy.config.AbstractDruidFilterConfig;
|
||||
import com.alibaba.druid.support.logging.Log;
|
||||
import com.alibaba.druid.support.logging.LogFactory;
|
||||
|
||||
/**
|
||||
* druid loader utils
|
||||
*
|
||||
* @author gang.su
|
||||
*/
|
||||
public class DruidLoaderUtils {
|
||||
|
||||
private final static Log LOG = LogFactory.getLog(DruidLoaderUtils.class);
|
||||
|
||||
public static void loadFilter(List<Filter> filterList, List<AbstractDruidFilterConfig> druidFilterConfigList)
|
||||
throws SQLException {
|
||||
for (Iterator<AbstractDruidFilterConfig> iterator = druidFilterConfigList.iterator(); iterator.hasNext();) {
|
||||
AbstractDruidFilterConfig druidFilterConfig = iterator.next();
|
||||
String filterItem = druidFilterConfig.getClazz();
|
||||
|
||||
Class<?> filterClass = loadClass(druidFilterConfig.getClazz());
|
||||
|
||||
if (filterClass == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
Filter jdbcFilter;
|
||||
try {
|
||||
jdbcFilter = (Filter) filterClass.newInstance();
|
||||
jdbcFilter.loadConfig(druidFilterConfig);
|
||||
} catch (InstantiationException e) {
|
||||
throw new SQLException("load managed jdbc driver event listener error. " + filterItem, e);
|
||||
} catch (IllegalAccessException e) {
|
||||
throw new SQLException("load managed jdbc driver event listener error. " + filterItem, e);
|
||||
}
|
||||
filterList.add(jdbcFilter);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public static void loadFilter(List<Filter> filters, String filterName) throws SQLException {
|
||||
if (filterName.length() == 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
String filterClassNames = FilterManager.getFilter(filterName);
|
||||
if (filterClassNames != null) {
|
||||
filterClassNames = filterClassNames.trim();
|
||||
}
|
||||
|
||||
if (filterClassNames != null) {
|
||||
for (String filterClassName : filterClassNames.split(",")) {
|
||||
|
||||
if (!isExist(filters, filterClassName)) {
|
||||
Class<?> filterClass = loadClass(filterClassName);
|
||||
|
||||
if (filterClass != null) {
|
||||
Filter filter;
|
||||
|
||||
try {
|
||||
filter = (Filter) filterClass.newInstance();
|
||||
} catch (InstantiationException e) {
|
||||
throw new SQLException("load managed jdbc driver event listener error. " + filterName, e);
|
||||
} catch (IllegalAccessException e) {
|
||||
throw new SQLException("load managed jdbc driver event listener error. " + filterName, e);
|
||||
}
|
||||
|
||||
filters.add(filter);
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (!isExist(filters, filterName)) {
|
||||
Class<?> filterClass = loadClass(filterName);
|
||||
|
||||
if (filterClass != null) {
|
||||
try {
|
||||
Filter filter = (Filter) filterClass.newInstance();
|
||||
filters.add(filter);
|
||||
} catch (InstantiationException e) {
|
||||
throw new SQLException("load managed jdbc driver event listener error. " + filterName, e);
|
||||
} catch (IllegalAccessException e) {
|
||||
throw new SQLException("load managed jdbc driver event listener error. " + filterName, e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 是否存在load
|
||||
*
|
||||
* @param filterConfigList
|
||||
* @param filterClassName
|
||||
* @return
|
||||
*/
|
||||
private static boolean isExist(List<Filter> filterConfigList, String filterClassName) {
|
||||
for (Iterator<Filter> iterator = filterConfigList.iterator(); iterator.hasNext();) {
|
||||
Filter filter = (Filter) iterator.next();
|
||||
if (filter.getClass().getName().equalsIgnoreCase(filterClassName)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public static Class<?> loadClass(String className) {
|
||||
Class<?> clazz = null;
|
||||
|
||||
if (className == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
try {
|
||||
clazz = Thread.currentThread().getContextClassLoader().loadClass(className);
|
||||
} catch (ClassNotFoundException e) {
|
||||
|
||||
}
|
||||
|
||||
if (clazz != null) {
|
||||
return clazz;
|
||||
}
|
||||
|
||||
try {
|
||||
return Class.forName(className);
|
||||
} catch (ClassNotFoundException e) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -25,9 +25,7 @@ import junit.framework.TestCase;
|
||||
|
||||
import com.alibaba.druid.bvt.proxy.DruidDriverTest.PublicJdbcFilterAdapter;
|
||||
import com.alibaba.druid.filter.Filter;
|
||||
import com.alibaba.druid.proxy.config.AbstractDruidFilterConfig;
|
||||
import com.alibaba.druid.proxy.config.DruidFilterConfig;
|
||||
import com.alibaba.druid.util.DruidLoaderUtils;
|
||||
import com.alibaba.druid.util.DruidFilterUtils;
|
||||
|
||||
/**
|
||||
* druidLoader util 测试
|
||||
@@ -41,42 +39,42 @@ public class DruidLoaderUtilsTest extends TestCase {
|
||||
List<Filter> filters = new ArrayList<Filter>();
|
||||
// log4j
|
||||
String filterItem = "log4j";
|
||||
DruidLoaderUtils.loadFilter(filters, filterItem);
|
||||
DruidFilterUtils.loadFilter(filters, filterItem);
|
||||
Filter filterConfig = filters.get(0);
|
||||
Assert.assertNotNull(filterConfig);
|
||||
Assert.assertEquals("com.alibaba.druid.filter.logging.Log4jFilter", filterConfig.getClass().getName());
|
||||
// stat
|
||||
filterItem = "stat";
|
||||
filters.clear();
|
||||
DruidLoaderUtils.loadFilter(filters, filterItem);
|
||||
DruidFilterUtils.loadFilter(filters, filterItem);
|
||||
filterConfig = filters.get(0);
|
||||
Assert.assertNotNull(filterConfig);
|
||||
Assert.assertEquals("com.alibaba.druid.filter.stat.StatFilter", filterConfig.getClass().getName());
|
||||
// default
|
||||
filterItem = "default";
|
||||
filters.clear();
|
||||
DruidLoaderUtils.loadFilter(filters, filterItem);
|
||||
DruidFilterUtils.loadFilter(filters, filterItem);
|
||||
filterConfig = filters.get(0);
|
||||
Assert.assertNotNull(filterConfig);
|
||||
Assert.assertEquals("com.alibaba.druid.filter.stat.StatFilter", filterConfig.getClass().getName());
|
||||
// counter
|
||||
filterItem = "stat";
|
||||
filters.clear();
|
||||
DruidLoaderUtils.loadFilter(filters, filterItem);
|
||||
DruidFilterUtils.loadFilter(filters, filterItem);
|
||||
filterConfig = filters.get(0);
|
||||
Assert.assertNotNull(filterConfig);
|
||||
Assert.assertEquals("com.alibaba.druid.filter.stat.StatFilter", filterConfig.getClass().getName());
|
||||
// commonLogging
|
||||
filterItem = "commonLogging";
|
||||
filters.clear();
|
||||
DruidLoaderUtils.loadFilter(filters, filterItem);
|
||||
DruidFilterUtils.loadFilter(filters, filterItem);
|
||||
filterConfig = filters.get(0);
|
||||
Assert.assertNotNull(filterConfig);
|
||||
Assert.assertEquals("com.alibaba.druid.filter.logging.CommonsLogFilter", filterConfig.getClass().getName());
|
||||
// encoding
|
||||
filterItem = "encoding";
|
||||
filters.clear();
|
||||
DruidLoaderUtils.loadFilter(filters, filterItem);
|
||||
DruidFilterUtils.loadFilter(filters, filterItem);
|
||||
filterConfig = filters.get(0);
|
||||
Assert.assertNotNull(filterConfig);
|
||||
Assert.assertEquals("com.alibaba.druid.filter.encoding.EncodingConvertFilter",
|
||||
@@ -84,9 +82,9 @@ public class DruidLoaderUtilsTest extends TestCase {
|
||||
// 判定重复
|
||||
filterItem = "stat";
|
||||
filters.clear();
|
||||
DruidLoaderUtils.loadFilter(filters, filterItem);
|
||||
DruidFilterUtils.loadFilter(filters, filterItem);
|
||||
filterItem = "default";
|
||||
DruidLoaderUtils.loadFilter(filters, filterItem);
|
||||
DruidFilterUtils.loadFilter(filters, filterItem);
|
||||
for (Iterator<Filter> iterator = filters.iterator(); iterator.hasNext();) {
|
||||
Filter filter = (Filter) iterator.next();
|
||||
System.out.println(filter.getClass().getName());
|
||||
@@ -94,29 +92,13 @@ public class DruidLoaderUtilsTest extends TestCase {
|
||||
// default
|
||||
}
|
||||
|
||||
public void testLoadFilter2() throws SQLException {
|
||||
|
||||
List<Filter> filterConfigList = new ArrayList<Filter>();
|
||||
List<AbstractDruidFilterConfig> druidFilterConfigList = new ArrayList<AbstractDruidFilterConfig>();
|
||||
DruidFilterConfig druidFilterConfig = new DruidFilterConfig();
|
||||
druidFilterConfig.setClazz("com.alibaba.druid.filter.logging.Log4jFilter");
|
||||
druidFilterConfig.setName("log4j");
|
||||
druidFilterConfigList.add(druidFilterConfig);
|
||||
// log4j
|
||||
DruidLoaderUtils.loadFilter(filterConfigList, druidFilterConfigList);
|
||||
Filter filterConfig = filterConfigList.get(0);
|
||||
Assert.assertNotNull(filterConfig);
|
||||
Assert.assertEquals("com.alibaba.druid.filter.logging.Log4jFilter", filterConfig.getClass().getName());
|
||||
|
||||
}
|
||||
|
||||
public void twest_loadClass() throws Exception {
|
||||
Assert.assertEquals(null, DruidLoaderUtils.loadClass(null));
|
||||
Assert.assertEquals(null, DruidLoaderUtils.loadClass("xxx"));
|
||||
Assert.assertEquals(null, DruidFilterUtils.loadClass(null));
|
||||
Assert.assertEquals(null, DruidFilterUtils.loadClass("xxx"));
|
||||
Assert.assertEquals(PublicJdbcFilterAdapter.class,
|
||||
DruidLoaderUtils.loadClass(PublicJdbcFilterAdapter.class.getName()));
|
||||
Assert.assertNull(DruidLoaderUtils.loadClass(null));
|
||||
Assert.assertNull(DruidLoaderUtils.loadClass(""));
|
||||
DruidFilterUtils.loadClass(PublicJdbcFilterAdapter.class.getName()));
|
||||
Assert.assertNull(DruidFilterUtils.loadClass(null));
|
||||
Assert.assertNull(DruidFilterUtils.loadClass(""));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user