DruidDataSource support clone

This commit is contained in:
温少
2012-06-06 17:42:45 +08:00
parent 6a1b559175
commit 39c798996f
2 changed files with 20 additions and 8 deletions
@@ -1383,8 +1383,12 @@ public class DruidDataSource extends DruidAbstractDataSource implements DruidDat
public JdbcDataSourceStat getDataSourceStat() {
return dataSourceStat;
}
public Object clone() throws CloneNotSupportedException {
return cloneDruidDataSource();
}
public DruidDataSource clone() {
public DruidDataSource cloneDruidDataSource() {
DruidDataSource x = new DruidDataSource();
cloneTo(x);
@@ -30,9 +30,17 @@ public class TestClone extends TestCase {
Connection conn_1 = dataSource.getConnection();
Connection conn_2 = dataSource.getConnection();
DruidDataSource clone = dataSource.clone();
DruidDataSource clone = (DruidDataSource) dataSource.clone();
clone.init();
Connection conn_3 = dataSource.getConnection();
Connection conn_4 = dataSource.getConnection();
Connection conn_5 = dataSource.getConnection();
conn_3.close();
conn_4.close();
conn_5.close();
dataSource.close();
Assert.assertEquals(dataSource.getUrl(), clone.getUrl());
@@ -72,13 +80,13 @@ public class TestClone extends TestCase {
// now is new dataSource;
dataSource = clone;
Connection conn_3 = dataSource.getConnection();
Connection conn_4 = dataSource.getConnection();
Connection conn_5 = dataSource.getConnection();
Connection conn_6 = dataSource.getConnection();
Connection conn_7 = dataSource.getConnection();
Connection conn_8 = dataSource.getConnection();
conn_3.close();
conn_4.close();
conn_5.close();
conn_6.close();
conn_7.close();
conn_8.close();
}