diff --git a/pom.xml b/pom.xml
index 48a1a1aaf5..d6302b6944 100644
--- a/pom.xml
+++ b/pom.xml
@@ -5,9 +5,18 @@
com.alibaba
druid
0.2-SNAPSHOT
-
+
druid
+
+
+ oracleReleases
+ Oracle Released Java Packages
+ http://download.oracle.com/maven
+ default
+
+
+
diff --git a/src/main/java/com/alibaba/druid/filter/stat/StatFilter.java b/src/main/java/com/alibaba/druid/filter/stat/StatFilter.java
index 5b8f692702..b69b776353 100644
--- a/src/main/java/com/alibaba/druid/filter/stat/StatFilter.java
+++ b/src/main/java/com/alibaba/druid/filter/stat/StatFilter.java
@@ -80,7 +80,7 @@ public class StatFilter extends FilterEventAdapter implements StatFilterMBean {
ConcurrentMap dataSourceStats = JdbcStatManager.getInstance().getDataSources();
- String url = dataSource.getJdbcUrl();
+ String url = dataSource.getUrl();
JdbcDataSourceStat stat = dataSourceStats.get(url);
if (stat == null) {
dataSourceStats.putIfAbsent(url, new JdbcDataSourceStat(dataSource.getName(), url));
@@ -611,7 +611,7 @@ public class StatFilter extends FilterEventAdapter implements StatFilterMBean {
@Override
public String getConnectionUrl() {
- return dataSource.getJdbcUrl();
+ return dataSource.getUrl();
}
public final JdbcSqlStat createSqlStat(StatementProxy statement, String sql) {
@@ -620,7 +620,7 @@ public class StatFilter extends FilterEventAdapter implements StatFilterMBean {
JdbcSqlStat newSqlStat = new JdbcSqlStat(sql);
if (dataSourceStat.getSqlStatMap().putIfAbsent(sql, newSqlStat) == null) {
newSqlStat.setId(JdbcStatManager.getInstance().generateSqlId());
- newSqlStat.setDataSource(this.dataSource.getJdbcUrl());
+ newSqlStat.setDataSource(this.dataSource.getUrl());
}
sqlStat = dataSourceStat.getSqlStatMap().get(sql);
diff --git a/src/main/java/com/alibaba/druid/pool/DruidDataAbstractSource.java b/src/main/java/com/alibaba/druid/pool/DruidDataAbstractSource.java
index 20fa6ad3f0..9509046174 100644
--- a/src/main/java/com/alibaba/druid/pool/DruidDataAbstractSource.java
+++ b/src/main/java/com/alibaba/druid/pool/DruidDataAbstractSource.java
@@ -277,11 +277,11 @@ public abstract class DruidDataAbstractSource implements DataSource, DataSourceP
this.maxActive = maxActive;
}
- public String getUser() {
+ public String getUsername() {
return user;
}
- public void setUser(String user) {
+ public void setUsername(String user) {
if (inited) {
throw new UnsupportedOperationException();
}
@@ -313,7 +313,7 @@ public abstract class DruidDataAbstractSource implements DataSource, DataSourceP
this.properties = properties;
}
- public String getJdbcUrl() {
+ public String getUrl() {
return jdbcUrl;
}
@@ -333,7 +333,7 @@ public abstract class DruidDataAbstractSource implements DataSource, DataSourceP
return driverClass;
}
- public void setDriverClass(String driverClass) {
+ public void setDriverClassName(String driverClass) {
if (inited) {
throw new UnsupportedOperationException();
}
@@ -402,14 +402,14 @@ public abstract class DruidDataAbstractSource implements DataSource, DataSourceP
public DruidPoolConnectionFactory(DruidDataAbstractSource dataSource){
this.dataSource = dataSource;
- this.url = dataSource.getJdbcUrl();
+ this.url = dataSource.getUrl();
Properties properties = dataSource.getProperties();
String user;
if (dataSource.getUserCallback() != null) {
user = dataSource.getUserCallback().getName();
} else {
- user = dataSource.getUser();
+ user = dataSource.getUsername();
}
String password;
diff --git a/src/main/java/com/alibaba/druid/pool/DruidDataSourceMBean.java b/src/main/java/com/alibaba/druid/pool/DruidDataSourceMBean.java
index 07d5dbe06b..616c5fa088 100644
--- a/src/main/java/com/alibaba/druid/pool/DruidDataSourceMBean.java
+++ b/src/main/java/com/alibaba/druid/pool/DruidDataSourceMBean.java
@@ -15,11 +15,11 @@ public interface DruidDataSourceMBean {
int getInitialSize();
- String getUser();
+ String getUsername();
String getPassword();
- String getJdbcUrl();
+ String getUrl();
String getDriverClass();
diff --git a/src/main/java/com/alibaba/druid/proxy/jdbc/DataSourceProxy.java b/src/main/java/com/alibaba/druid/proxy/jdbc/DataSourceProxy.java
index 6ed2111a21..1f872596c2 100644
--- a/src/main/java/com/alibaba/druid/proxy/jdbc/DataSourceProxy.java
+++ b/src/main/java/com/alibaba/druid/proxy/jdbc/DataSourceProxy.java
@@ -31,7 +31,7 @@ public interface DataSourceProxy {
Driver getRawDriver();
- String getJdbcUrl();
+ String getUrl();
String getRawJdbcUrl();
diff --git a/src/main/java/com/alibaba/druid/proxy/jdbc/DataSourceProxyImpl.java b/src/main/java/com/alibaba/druid/proxy/jdbc/DataSourceProxyImpl.java
index 255f0edb19..58cbe894f2 100644
--- a/src/main/java/com/alibaba/druid/proxy/jdbc/DataSourceProxyImpl.java
+++ b/src/main/java/com/alibaba/druid/proxy/jdbc/DataSourceProxyImpl.java
@@ -100,19 +100,13 @@ public class DataSourceProxyImpl implements DataSourceProxy, DataSourceProxyImpl
this.id = id;
}
- @Override
- public String getUrl() {
- return this.config.getUrl();
- }
-
-
@Override
public String getName() {
return this.config.getName();
}
@Override
- public String getJdbcUrl() {
+ public String getUrl() {
return config.getUrl();
}
diff --git a/src/test/java/com/alibaba/druid/TestUtil.java b/src/test/java/com/alibaba/druid/TestUtil.java
new file mode 100644
index 0000000000..4a6b389255
--- /dev/null
+++ b/src/test/java/com/alibaba/druid/TestUtil.java
@@ -0,0 +1,45 @@
+package com.alibaba.druid;
+
+import java.lang.management.ManagementFactory;
+
+import javax.management.MBeanServer;
+import javax.management.ObjectName;
+
+public class TestUtil {
+ public static long getYoungGC() {
+ try {
+ MBeanServer mbeanServer = ManagementFactory.getPlatformMBeanServer();
+ ObjectName objectName;
+ if (mbeanServer.isRegistered(new ObjectName("java.lang:type=GarbageCollector,name=ParNew"))) {
+ objectName = new ObjectName("java.lang:type=GarbageCollector,name=ParNew");
+ } else if (mbeanServer.isRegistered(new ObjectName("java.lang:type=GarbageCollector,name=Copy"))) {
+ objectName = new ObjectName("java.lang:type=GarbageCollector,name=Copy");
+ } else {
+ objectName = new ObjectName("java.lang:type=GarbageCollector,name=PS Scavenge");
+ }
+
+ return (Long) mbeanServer.getAttribute(objectName, "CollectionCount");
+ } catch (Exception e) {
+ throw new RuntimeException("error");
+ }
+ }
+
+ public static long getFullGC() {
+ try {
+ MBeanServer mbeanServer = ManagementFactory.getPlatformMBeanServer();
+ ObjectName objectName;
+
+ if (mbeanServer.isRegistered(new ObjectName("java.lang:type=GarbageCollector,name=ConcurrentMarkSweep"))) {
+ objectName = new ObjectName("java.lang:type=GarbageCollector,name=ConcurrentMarkSweep");
+ } else if (mbeanServer.isRegistered(new ObjectName("java.lang:type=GarbageCollector,name=MarkSweepCompact"))) {
+ objectName = new ObjectName("java.lang:type=GarbageCollector,name=MarkSweepCompact");
+ } else {
+ objectName = new ObjectName("java.lang:type=GarbageCollector,name=PS MarkSweep");
+ }
+
+ return (Long) mbeanServer.getAttribute(objectName, "CollectionCount");
+ } catch (Exception e) {
+ throw new RuntimeException("error");
+ }
+ }
+}
diff --git a/src/test/java/com/alibaba/druid/bvt/pool/Case0.java b/src/test/java/com/alibaba/druid/bvt/pool/Case0.java
index 77b4e2ee33..c51461c5a7 100644
--- a/src/test/java/com/alibaba/druid/bvt/pool/Case0.java
+++ b/src/test/java/com/alibaba/druid/bvt/pool/Case0.java
@@ -43,10 +43,10 @@ public class Case0 extends TestCase {
dataSource.setMinIdle(minPoolSize);
dataSource.setMaxIdle(maxPoolSize);
dataSource.setPoolPreparedStatements(true);
- dataSource.setDriverClass(driverClass);
+ dataSource.setDriverClassName(driverClass);
dataSource.setUrl(jdbcUrl);
dataSource.setPoolPreparedStatements(true);
- dataSource.setUser(user);
+ dataSource.setUsername(user);
dataSource.setPassword(password);
final int LOOP_COUNT = 1000 * 1000;
diff --git a/src/test/java/com/alibaba/druid/bvt/pool/ConcurrentTest.java b/src/test/java/com/alibaba/druid/bvt/pool/ConcurrentTest.java
index 8fccd10cce..287c3a9e8d 100644
--- a/src/test/java/com/alibaba/druid/bvt/pool/ConcurrentTest.java
+++ b/src/test/java/com/alibaba/druid/bvt/pool/ConcurrentTest.java
@@ -41,10 +41,10 @@ public class ConcurrentTest extends TestCase {
dataSource.setMinIdle(minPoolSize);
dataSource.setMaxIdle(maxPoolSize);
dataSource.setPoolPreparedStatements(true);
- dataSource.setDriverClass(driverClass);
+ dataSource.setDriverClassName(driverClass);
dataSource.setUrl(jdbcUrl);
dataSource.setPoolPreparedStatements(true);
- dataSource.setUser(user);
+ dataSource.setUsername(user);
dataSource.setPassword(password);
final int THREAD_COUNT = 2;
diff --git a/src/test/java/com/alibaba/druid/bvt/pool/TestDruidDataSource.java b/src/test/java/com/alibaba/druid/bvt/pool/TestDruidDataSource.java
index ac5f0de7c6..e1a68997b7 100644
--- a/src/test/java/com/alibaba/druid/bvt/pool/TestDruidDataSource.java
+++ b/src/test/java/com/alibaba/druid/bvt/pool/TestDruidDataSource.java
@@ -16,7 +16,7 @@ public class TestDruidDataSource extends TestCase {
dataSource.setInitialSize(10);
dataSource.setMaxIdle(10);
- dataSource.setDriverClass("com.alibaba.druid.mock.MockDriver");
+ dataSource.setDriverClassName("com.alibaba.druid.mock.MockDriver");
dataSource.setUrl("jdbc:mock:xxx");
Assert.assertEquals(0, dataSource.getConnectCount());
diff --git a/src/test/java/com/alibaba/druid/bvt/pool/Test_C2.java b/src/test/java/com/alibaba/druid/bvt/pool/Test_C2.java
index a367a2e679..29f28bf2de 100644
--- a/src/test/java/com/alibaba/druid/bvt/pool/Test_C2.java
+++ b/src/test/java/com/alibaba/druid/bvt/pool/Test_C2.java
@@ -42,7 +42,7 @@ public class Test_C2 extends TestCase {
dataSource.setMinIdle(minPoolSize);
dataSource.setMaxIdle(maxPoolSize);
dataSource.setPoolPreparedStatements(true);
- dataSource.setDriverClass(driverClass);
+ dataSource.setDriverClassName(driverClass);
dataSource.setUrl(jdbcUrl);
dataSource.setPoolPreparedStatements(true);
diff --git a/src/test/java/com/alibaba/druid/pool/benckmark/Case0.java b/src/test/java/com/alibaba/druid/pool/benckmark/Case0.java
index 5633437380..9f9833b9f2 100644
--- a/src/test/java/com/alibaba/druid/pool/benckmark/Case0.java
+++ b/src/test/java/com/alibaba/druid/pool/benckmark/Case0.java
@@ -10,6 +10,7 @@ import junit.framework.TestCase;
import org.apache.commons.dbcp.BasicDataSource;
+import com.alibaba.druid.TestUtil;
import com.alibaba.druid.pool.DruidDataSource;
public class Case0 extends TestCase {
@@ -38,15 +39,16 @@ public class Case0 extends TestCase {
dataSource.setMinIdle(minPoolSize);
dataSource.setMaxIdle(maxPoolSize);
dataSource.setPoolPreparedStatements(true);
- dataSource.setDriverClass(driverClass);
+ dataSource.setDriverClassName(driverClass);
dataSource.setUrl(jdbcUrl);
dataSource.setPoolPreparedStatements(true);
- dataSource.setUser(user);
+ dataSource.setUsername(user);
dataSource.setPassword(password);
for (int i = 0; i < 10; ++i) {
- p0(dataSource);
+ p0(dataSource, "druid");
}
+ System.out.println();
}
public void test_1() throws Exception {
@@ -64,18 +66,25 @@ public class Case0 extends TestCase {
dataSource.setPassword(password);
for (int i = 0; i < 10; ++i) {
- p0(dataSource);
+ p0(dataSource, "dbcp");
}
+ System.out.println();
}
- private void p0(DataSource dataSource) throws SQLException {
+ private void p0(DataSource dataSource, String name) throws SQLException {
long startMillis = System.currentTimeMillis();
+ long startYGC = TestUtil.getYoungGC();
+ long startFullGC = TestUtil.getFullGC();
+
final int COUNT = 1000 * 1000;
for (int i = 0; i < COUNT; ++i) {
Connection conn = dataSource.getConnection();
conn.close();
}
long millis = System.currentTimeMillis() - startMillis;
- System.out.println(dataSource.getClass().getName() + " millis : " + NumberFormat.getInstance().format(millis));
+ long ygc = TestUtil.getYoungGC() - startYGC;
+ long fullGC = TestUtil.getFullGC() - startFullGC;
+
+ System.out.println(name + " millis : " + NumberFormat.getInstance().format(millis) + ", YGC " + ygc + " FGC " + fullGC);
}
}