From 5e00fe215d9e063b5b30c7ce4dd7f2fc85e1c2b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B8=A9=E5=B0=91?= Date: Thu, 21 Jun 2012 22:21:37 +0800 Subject: [PATCH] add sharding visitor --- pom.xml | 14 +----- .../druid/sql/visitor/SQLShardingVisitor.java | 17 +++++++ .../druid/bvt/pool/TestActiveTrace.java | 50 +++++++++++++++++++ 3 files changed, 68 insertions(+), 13 deletions(-) create mode 100644 src/main/java/com/alibaba/druid/sql/visitor/SQLShardingVisitor.java create mode 100644 src/test/java/com/alibaba/druid/bvt/pool/TestActiveTrace.java diff --git a/pom.xml b/pom.xml index 2c08f414d4..c6494d335d 100644 --- a/pom.xml +++ b/pom.xml @@ -13,18 +13,6 @@ 2012 - - oracleReleases - Oracle Released Java Packages - http://download.oracle.com/maven - default - - - vars.sourceforge.net - vars.sourceforge.net - http://vars.sourceforge.net/maven2/ - default - bonecp bonecp @@ -247,7 +235,7 @@ mysql mysql-connector-java - 5.0.4 + 5.1.20 provided diff --git a/src/main/java/com/alibaba/druid/sql/visitor/SQLShardingVisitor.java b/src/main/java/com/alibaba/druid/sql/visitor/SQLShardingVisitor.java new file mode 100644 index 0000000000..308ded30f2 --- /dev/null +++ b/src/main/java/com/alibaba/druid/sql/visitor/SQLShardingVisitor.java @@ -0,0 +1,17 @@ +package com.alibaba.druid.sql.visitor; + +import com.alibaba.druid.sql.ast.SQLObject; +import com.alibaba.druid.sql.ast.statement.SQLInsertStatement; + +public class SQLShardingVisitor extends SQLASTVisitorAdapter { + + public void postVisit(SQLObject x) { + } + + public void preVisit(SQLObject x) { + } + + public boolean visit(SQLInsertStatement x) { + return false; + } +} diff --git a/src/test/java/com/alibaba/druid/bvt/pool/TestActiveTrace.java b/src/test/java/com/alibaba/druid/bvt/pool/TestActiveTrace.java new file mode 100644 index 0000000000..7ac09e20fe --- /dev/null +++ b/src/test/java/com/alibaba/druid/bvt/pool/TestActiveTrace.java @@ -0,0 +1,50 @@ +package com.alibaba.druid.bvt.pool; + +import java.lang.management.ManagementFactory; +import java.sql.Connection; + +import junit.framework.Assert; +import junit.framework.TestCase; + +import com.alibaba.druid.pool.DruidDataSource; +import com.alibaba.druid.stat.DruidDataSourceStatManager; + +public class TestActiveTrace extends TestCase { + + private DruidDataSource dataSource; + + protected void setUp() throws Exception { + Assert.assertEquals(0, DruidDataSourceStatManager.getInstance().getDataSourceList().size()); + + dataSource = new DruidDataSource(); + dataSource.setRemoveAbandoned(true); + dataSource.setRemoveAbandonedTimeoutMillis(10); + dataSource.setLogAbandoned(true); + dataSource.setTimeBetweenEvictionRunsMillis(10); + dataSource.setMinEvictableIdleTimeMillis(300 * 1000); + dataSource.setUrl("jdbc:mock:xxx"); + + } + + protected void tearDown() throws Exception { + dataSource.close(); + Assert.assertEquals(0, DruidDataSourceStatManager.getInstance().getDataSourceList().size()); + } + + public void test_activeTrace() throws Exception { + for (int i = 0; i < 1000 * 1000; ++i) { + dataSource.shrink(); + + Connection conn = dataSource.getConnection(); + conn.close(); + // Assert.assertEquals(1, dataSource.getPoolingCount()); + dataSource.shrink(); + Assert.assertEquals(0, dataSource.getPoolingCount()); + Assert.assertEquals(0, dataSource.getActiveConnections().size()); + + if (i % 5000 == 0) { + System.out.println(ManagementFactory.getClassLoadingMXBean().getLoadedClassCount()); + } + } + } +}