From 39c798996fd64f55aefbaf3ef4c1007aa5755ed5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B8=A9=E5=B0=91?= Date: Wed, 6 Jun 2012 17:42:45 +0800 Subject: [PATCH] DruidDataSource support clone --- .../alibaba/druid/pool/DruidDataSource.java | 6 ++++- .../com/alibaba/druid/bvt/pool/TestClone.java | 22 +++++++++++++------ 2 files changed, 20 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/alibaba/druid/pool/DruidDataSource.java b/src/main/java/com/alibaba/druid/pool/DruidDataSource.java index 9eb65780e5..13e80876bd 100644 --- a/src/main/java/com/alibaba/druid/pool/DruidDataSource.java +++ b/src/main/java/com/alibaba/druid/pool/DruidDataSource.java @@ -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); diff --git a/src/test/java/com/alibaba/druid/bvt/pool/TestClone.java b/src/test/java/com/alibaba/druid/bvt/pool/TestClone.java index f174aceae1..64d4353260 100644 --- a/src/test/java/com/alibaba/druid/bvt/pool/TestClone.java +++ b/src/test/java/com/alibaba/druid/bvt/pool/TestClone.java @@ -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(); }