use of com.alibaba.druid.proxy.jdbc.StatementProxy in project druid by alibaba.
the class LogFilterTest method test_logFilter_2.
public void test_logFilter_2() throws Exception {
DataSourceProxyConfig config = new DataSourceProxyConfig();
config.setRawUrl("jdbc:mock:");
DataSourceProxyImpl dataSource = new DataSourceProxyImpl(new MockDriver(), config);
Log4jFilter log4jFilter = new Log4jFilter();
{
log4jFilter.init(dataSource);
setLogDisableAll(log4jFilter, true);
config.getFilters().add(log4jFilter);
}
CommonsLogFilter logFilter = new CommonsLogFilter();
{
logFilter.init(dataSource);
setLogDisableAll(logFilter, true);
config.getFilters().add(logFilter);
}
final MockResultSetMetaData rsMeta = new MockResultSetMetaData() {
private int[] types = new int[] { Types.BLOB, Types.CLOB, Types.NCLOB, Types.BINARY, Types.OTHER };
@Override
public int getColumnCount() throws SQLException {
return types.length;
}
@Override
public int getColumnType(int column) throws SQLException {
return types[column - 1];
}
};
ConnectionProxy conn = (ConnectionProxy) dataSource.connect(new Properties());
{
StatementProxy stmt = (StatementProxy) conn.createStatement();
MockResultSet rs = new MockResultSet(null) {
@Override
public ResultSetMetaData getMetaData() throws SQLException {
return rsMeta;
}
@Override
public boolean next() throws SQLException {
return true;
}
@Override
public Object getObject(int columnIndex) throws SQLException {
if (columnIndex == 5) {
throw new SQLException();
}
return null;
}
};
FilterChainImpl chain = new FilterChainImpl(dataSource);
chain.resultSet_next(new ResultSetProxyImpl(stmt, rs, 1001, null));
}
{
final MockResultSet rs = new MockResultSet(null) {
@Override
public ResultSetMetaData getMetaData() throws SQLException {
throw new SQLException();
}
};
StatementProxy stmt = new StatementProxyImpl(conn, new MockStatement(conn) {
public ResultSet getResultSet() throws SQLException {
return rs;
}
}, 0);
FilterChainImpl chain = new FilterChainImpl(dataSource);
chain.statement_getResultSet(stmt);
}
{
StatementProxy stmt = (StatementProxy) conn.createStatement();
MockResultSet rs = new MockResultSet(null) {
@Override
public ResultSetMetaData getMetaData() throws SQLException {
return rsMeta;
}
@Override
public boolean next() throws SQLException {
return true;
}
@Override
public Object getObject(int columnIndex) throws SQLException {
if (columnIndex == 5) {
throw new SQLException();
}
return null;
}
};
{
logFilter.setResultSetLogEnabled(false);
FilterChainImpl chain = new FilterChainImpl(dataSource);
chain.resultSet_next(new ResultSetProxyImpl(stmt, rs, 1001, null));
}
{
logFilter.setResultSetNextAfterLogEnabled(false);
FilterChainImpl chain = new FilterChainImpl(dataSource);
chain.resultSet_next(new ResultSetProxyImpl(stmt, rs, 1001, null));
}
}
}
use of com.alibaba.druid.proxy.jdbc.StatementProxy in project druid by alibaba.
the class AsyncCloseTest2 method setUp.
protected void setUp() throws Exception {
Field logField = DruidDataSource.class.getDeclaredField("LOG");
logField.setAccessible(true);
Log dataSourceLog = (Log) logField.get(null);
if (dataSourceLog instanceof Log4jImpl) {
this.log4jLog = ((Log4jImpl) dataSourceLog).getLog();
this.log4jOldLevel = this.log4jLog.getLevel();
this.log4jLog.setLevel(Level.FATAL);
} else if (dataSourceLog instanceof NoLoggingImpl) {
noLoggingImpl = (NoLoggingImpl) dataSourceLog;
noLoggingImpl.setErrorEnabled(false);
}
dataSource = new DruidDataSource();
dataSource.setUrl("jdbc:mock:");
dataSource.setAsyncCloseConnectionEnable(true);
dataSource.setTestOnBorrow(false);
dataSource.setMaxActive(16);
dataSource.getProxyFilters().add(new FilterAdapter() {
@Override
public boolean statement_execute(FilterChain chain, StatementProxy statement, String sql) throws SQLException {
throw new SQLException();
}
});
dataSource.setExceptionSorter(new MyExceptionSorter());
dataSource.init();
connExecutor = Executors.newFixedThreadPool(128);
closeExecutor = Executors.newFixedThreadPool(128);
}
use of com.alibaba.druid.proxy.jdbc.StatementProxy in project druid by alibaba.
the class AsyncCloseTest3 method setUp.
protected void setUp() throws Exception {
// m;
xmx = ManagementFactory.getMemoryMXBean().getHeapMemoryUsage().getMax() / (1000 * 1000);
System.gc();
Field logField = DruidDataSource.class.getDeclaredField("LOG");
logField.setAccessible(true);
Log dataSourceLog = (Log) logField.get(null);
if (dataSourceLog instanceof Log4jImpl) {
this.log4jLog = ((Log4jImpl) dataSourceLog).getLog();
this.log4jOldLevel = this.log4jLog.getLevel();
this.log4jLog.setLevel(Level.FATAL);
} else if (dataSourceLog instanceof NoLoggingImpl) {
noLoggingImpl = (NoLoggingImpl) dataSourceLog;
noLoggingImpl.setErrorEnabled(false);
}
dataSource = new DruidDataSource();
dataSource.setUrl("jdbc:mock:");
// dataSource.setAsyncCloseConnectionEnable(true);
dataSource.setTestOnBorrow(false);
dataSource.setMaxActive(16);
dataSource.getProxyFilters().add(new FilterAdapter() {
@Override
public boolean statement_execute(FilterChain chain, StatementProxy statement, String sql) throws SQLException {
throw new SQLException();
}
});
dataSource.setExceptionSorter(new MyExceptionSorter());
dataSource.init();
connExecutor = Executors.newFixedThreadPool(2);
closeExecutor = Executors.newFixedThreadPool(2);
}
use of com.alibaba.druid.proxy.jdbc.StatementProxy in project druid by alibaba.
the class FilterEventAdapter method connection_createStatement.
@Override
public StatementProxy connection_createStatement(FilterChain chain, ConnectionProxy connection, int resultSetType, int resultSetConcurrency, int resultSetHoldability) throws SQLException {
StatementProxy statement = super.connection_createStatement(chain, connection, resultSetType, resultSetConcurrency, resultSetHoldability);
statementCreateAfter(statement);
return statement;
}
Aggregations