use of com.alibaba.druid.filter.Filter in project druid by alibaba.
the class HoldableUnsupportTest method setUp.
protected void setUp() throws Exception {
dataSource = new DruidDataSource();
dataSource.setUrl("jdbc:mock:xxx");
Filter filter = new FilterAdapter() {
@Override
public int connection_getHoldability(FilterChain chain, ConnectionProxy connection) throws SQLException {
throw new UnsupportedOperationException();
}
};
dataSource.getProxyFilters().add(filter);
}
use of com.alibaba.druid.filter.Filter in project druid by alibaba.
the class DruidLoaderUtilsTest method testLoadFilter.
public void testLoadFilter() throws SQLException {
List<Filter> filters = new ArrayList<Filter>();
// log4j
String filterItem = "log4j";
FilterManager.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();
FilterManager.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();
FilterManager.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();
FilterManager.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();
FilterManager.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();
FilterManager.loadFilter(filters, filterItem);
filterConfig = filters.get(0);
Assert.assertNotNull(filterConfig);
Assert.assertEquals("com.alibaba.druid.filter.encoding.EncodingConvertFilter", filterConfig.getClass().getName());
// 判定重复
filterItem = "stat";
filters.clear();
FilterManager.loadFilter(filters, filterItem);
filterItem = "default";
FilterManager.loadFilter(filters, filterItem);
for (Iterator<Filter> iterator = filters.iterator(); iterator.hasNext(); ) {
Filter filter = (Filter) iterator.next();
System.out.println(filter.getClass().getName());
}
// default
}
use of com.alibaba.druid.filter.Filter in project druid by alibaba.
the class DruidDataSource method initFromWrapDriverUrl.
private void initFromWrapDriverUrl() throws SQLException {
if (!jdbcUrl.startsWith(DruidDriver.DEFAULT_PREFIX)) {
return;
}
DataSourceProxyConfig config = DruidDriver.parseConfig(jdbcUrl, null);
this.driverClass = config.getRawDriverClassName();
LOG.error("error url : '" + jdbcUrl + "', it should be : '" + config.getRawUrl() + "'");
this.jdbcUrl = config.getRawUrl();
if (this.name == null) {
this.name = config.getName();
}
for (Filter filter : config.getFilters()) {
addFilter(filter);
}
}
use of com.alibaba.druid.filter.Filter in project druid by alibaba.
the class DruidDataSource method setConnectProperties.
@SuppressWarnings("rawtypes")
public void setConnectProperties(Properties properties) {
if (properties == null) {
properties = new Properties();
}
boolean equals;
if (properties.size() == this.connectProperties.size()) {
equals = true;
for (Map.Entry entry : properties.entrySet()) {
Object value = this.connectProperties.get(entry.getKey());
Object entryValue = entry.getValue();
if (value == null && entryValue != null) {
equals = false;
break;
}
if (!value.equals(entry.getValue())) {
equals = false;
break;
}
}
} else {
equals = false;
}
if (!equals) {
if (inited && LOG.isInfoEnabled()) {
LOG.info("connectProperties changed : " + this.connectProperties + " -> " + properties);
}
configFromPropety(properties);
for (Filter filter : this.filters) {
filter.configFromProperties(properties);
}
if (exceptionSorter != null) {
exceptionSorter.configFromProperties(properties);
}
if (validConnectionChecker != null) {
validConnectionChecker.configFromProperties(properties);
}
if (statLogger != null) {
statLogger.configFromProperties(properties);
}
}
this.connectProperties = properties;
}
use of com.alibaba.druid.filter.Filter in project druid by alibaba.
the class DruidDataSource method addFilter.
/**
* 会去重复
*
* @param filter
*/
private void addFilter(Filter filter) {
boolean exists = false;
for (Filter initedFilter : this.filters) {
if (initedFilter.getClass() == filter.getClass()) {
exists = true;
break;
}
}
if (!exists) {
filter.init(this);
this.filters.add(filter);
}
}
Aggregations