diff --git a/db/org.tinygroup.dbrouterjdbc3/src/test/java/org/tinygroup/dbrouterjdbc3/jdbc/PrimarySlaveTest.java b/db/org.tinygroup.dbrouterjdbc3/src/test/java/org/tinygroup/dbrouterjdbc3/jdbc/PrimarySlaveTest.java index a26aa7c27ed1a1f0612c46b031a030994cff8b5c..8cc5bae66468af138fd5841c3542b6389f4ab246 100644 --- a/db/org.tinygroup.dbrouterjdbc3/src/test/java/org/tinygroup/dbrouterjdbc3/jdbc/PrimarySlaveTest.java +++ b/db/org.tinygroup.dbrouterjdbc3/src/test/java/org/tinygroup/dbrouterjdbc3/jdbc/PrimarySlaveTest.java @@ -49,23 +49,19 @@ public class PrimarySlaveTest extends TestCase { private static final String[] DERBY_DBS = { "db01", "db02", "db03" }; // derby数据库 private static RouterManager routerManager; // tiny路由管理器 - private static boolean inited; // 是否已初始化 protected void setUp() throws Exception { super.setUp(); - // init(); // 初始化derby数据库和表 } protected void tearDown() throws Exception { super.tearDown(); - // destroy(); // 关闭derby数据库,并清理对应文件夹 } - public static void main(String[] args) { + public void test() { try { init(); // 初始化derby数据库和表 - PrimarySlaveTest test = new PrimarySlaveTest(); - test.commonTest(); + commonTest(); } catch (Exception e) { throw new RuntimeException("测试失败", e); } finally { @@ -73,19 +69,6 @@ public class PrimarySlaveTest extends TestCase { } } - public void test() { - // if (!inited) { // 未初始化 - // return; - // } - // - // try { - // commonTest(); - // } catch (Exception e) { - // destroy(); // 关闭derby数据库,并清理对应文件夹 - // throw new RuntimeException("测试失败", e); - // } - } - private void commonTest() throws Exception { Connection conn = DriverManager.getConnection(URL, USERNAME, PASSWORD); Statement st = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, @@ -144,31 +127,22 @@ public class PrimarySlaveTest extends TestCase { * * @throws Exception */ - private static void init() { - if (inited) { // 已初始化 - return; - } + private static void init() throws Exception { + Class.forName(TINY_DRIVER); // 加载tiny数据库驱动 + Class.forName(DERBY_DRIVER).newInstance(); // 加载derby数据库驱动,调用newInstance()方法是解决有时注册加载驱动失败的问题 - try { - Class.forName(TINY_DRIVER); // 加载tiny数据库驱动 - Class.forName(DERBY_DRIVER); // 加载derby数据库驱动 - } catch (ClassNotFoundException e) { - throw new RuntimeException("数据库驱动加载失败!", e); - } - - // 初始化routerManager + // 初始化routerManager,并添加路由 routerManager = RouterManagerBeanFactory.getManager(); routerManager.addRouters(ROUTER_CONFIG); FileUtil.deleteFile(DERBY_DBPATH); // 删除derby数据库路径 // 建表sql - StringBuffer sb = new StringBuffer(); - sb.append("CREATE TABLE "); - sb.append("teacher").append("("); - sb.append("ID int not null,"); - sb.append("NAME varchar(20))"); - String sql = sb.toString(); + StringBuffer sql = new StringBuffer(); + sql.append("CREATE TABLE "); + sql.append("teacher").append("("); + sql.append("ID int not null,"); + sql.append("NAME varchar(20))"); // 在每个数据库中建表 String derbyDbpath = DERBY_DBPATH; @@ -180,21 +154,12 @@ public class PrimarySlaveTest extends TestCase { url.append(derbyDbpath + derbyDB); url.append(";create=true"); - Connection conn = null; - Statement st = null; - try { - conn = DriverManager.getConnection(url.toString()); - st = conn.createStatement(); - st.execute(sql); - } catch (SQLException e) { - destroy(); // 关闭derby数据库,并清理对应文件夹 - throw new RuntimeException("建表失败!", e); - } finally { - close(conn, st, null); - } + Connection conn = DriverManager.getConnection(url.toString()); + Statement st = conn.createStatement(); + st.execute(sql.toString()); + close(conn, st, null); } - inited = true; System.out.println("数据库和表初始化完成!"); } @@ -235,11 +200,13 @@ public class PrimarySlaveTest extends TestCase { } catch (SQLException e) { // 关闭失败,忽略之 } + System.out.println("所有数据库已关闭!"); + System.out.println("相关目录已删除!"); FileUtil.deleteFile("derby.log"); // 删除derby日志文件 FileUtil.deleteFile(DERBY_DBPATH); // 删除derby数据库文件夹 - System.out.println("derby数据库清理完成!"); + System.out.println("测试现场清理完成"); } } diff --git a/db/org.tinygroup.dbrouterjdbc3/src/test/java/org/tinygroup/dbrouterjdbc3/jdbc/ShardModeDiffSchemaTest.java b/db/org.tinygroup.dbrouterjdbc3/src/test/java/org/tinygroup/dbrouterjdbc3/jdbc/ShardModeDiffSchemaTest.java index 82332ceae4f323526dfa6b33219623935dc19ec2..1a969c2a85da730c16bffbb1abc0eca1ad4a6916 100644 --- a/db/org.tinygroup.dbrouterjdbc3/src/test/java/org/tinygroup/dbrouterjdbc3/jdbc/ShardModeDiffSchemaTest.java +++ b/db/org.tinygroup.dbrouterjdbc3/src/test/java/org/tinygroup/dbrouterjdbc3/jdbc/ShardModeDiffSchemaTest.java @@ -28,28 +28,25 @@ public class ShardModeDiffSchemaTest extends TestCase { private static final String[] DERBY_DBS = { "db01", "db02", "db03" }; // derby数据库 private static RouterManager routerManager; // tiny路由管理器 - private static boolean inited; // 是否已初始化 protected void setUp() throws Exception { super.setUp(); - // init(); } protected void tearDown() throws Exception { super.tearDown(); - // destroy(); } - public static void main(String[] args) { + public void test() { Connection conn = null; try { - init(); // 初始化derby数据库和表 + init(); // 初始化数据库和表 + conn = DriverManager.getConnection(URL, USER, PASSWORD); - ShardModeDiffSchemaTest test = new ShardModeDiffSchemaTest(); - test.relatedQueryTest(conn); - test.statementTest(conn); - test.resultSetTest(conn); - test.relatedQueryTest2(conn); + relatedQueryTest(conn); + statementTest(conn); + resultSetTest(conn); + relatedQueryTest2(conn); } catch (Exception e) { throw new RuntimeException("测试失败", e); } finally { @@ -58,26 +55,6 @@ public class ShardModeDiffSchemaTest extends TestCase { } } - public void test() { - // if (!inited) { // 未初始化 - // return; - // } - // - // Connection conn = null; - // try { - // conn = DriverManager.getConnection(URL, USER, PASSWORD); - // relatedQueryTest(conn); - // statementTest(conn); - // resultSetTest(conn); - // relatedQueryTest2(conn); - // } catch (Exception e) { - // destroy(); // 关闭derby数据库,并清理对应文件夹 - // throw new RuntimeException("测试失败", e); - // } finally { - // close(conn, null, null); - // } - } - /** * 两张表关联查询测试 * @@ -480,50 +457,45 @@ public class ShardModeDiffSchemaTest extends TestCase { } catch (SQLException e) { // 关闭失败,忽略之 } + System.out.println("所有数据库已关闭!"); FileUtil.deleteFile("derby.log"); // 删除derby日志文件 FileUtil.deleteFile(DERBY_DBPATH); // 删除derby数据库文件夹 + System.out.println("相关目录已删除!"); - System.out.println("derby数据库清理完成!"); + System.out.println("测试现场清理完成!"); } /** * 初始化derby数据库和表 + * + * @throws Exception */ - private static void init() { - if (inited) { // 已初始化 - return; - } - - try { - Class.forName(TINY_DRIVER); // 加载tiny数据库驱动 - Class.forName(DERBY_DRIVER); // 加载derby数据库驱动 - } catch (ClassNotFoundException e) { - throw new RuntimeException("数据库驱动加载失败!", e); - } + private static void init() throws Exception { + Class.forName(TINY_DRIVER); // 加载tiny数据库驱动 + Class.forName(DERBY_DRIVER).newInstance(); // 加载derby数据库驱动,调用newInstance()方法是解决有时注册加载驱动失败的问题 - // 初始化routerManager + // 初始化routerManager,并添加路由 routerManager = RouterManagerBeanFactory.getManager(); routerManager.addRouters(ROUTER_CONFIG); - FileUtil.deleteFile(DERBY_DBPATH); // 删除derby数据库路径 + FileUtil.deleteFile(DERBY_DBPATH); // 删除derby数据库路径,该目录不为空,则derby数据库创建失败 - StringBuffer sb = new StringBuffer(); - sb.append("CREATE TABLE "); - sb.append("teacher").append("("); - sb.append("ID int not null,"); - sb.append("NAME varchar(20))"); - String t_sql = sb.toString(); + // 建teacher表sql + StringBuffer t_sql = new StringBuffer(); + t_sql.append("CREATE TABLE teacher("); + t_sql.append("ID int not null,"); + t_sql.append("NAME varchar(20))"); - sb = new StringBuffer(); - sb.append("CREATE TABLE student("); - sb.append("ID int not null,"); - sb.append("TID int,"); - sb.append("AGE int,"); - sb.append("NAME varchar(20))"); - String s_sql = sb.toString(); + // 建student表sql + StringBuffer s_sql = new StringBuffer(); + s_sql.append("CREATE TABLE student("); + s_sql.append("ID int not null,"); + s_sql.append("TID int,"); + s_sql.append("AGE int,"); + s_sql.append("NAME varchar(20))"); - // 在每个数据库中建表 + // 新建数据库,并在每个新建的数据库上新建teacher表和student表 String derbyDbpath = DERBY_DBPATH; if (!derbyDbpath.endsWith("/") && !derbyDbpath.endsWith("\\")) { derbyDbpath = derbyDbpath + "/"; @@ -533,22 +505,13 @@ public class ShardModeDiffSchemaTest extends TestCase { url.append(derbyDbpath + derbyDB); url.append(";create=true"); - Connection conn = null; - Statement st = null; - try { - conn = DriverManager.getConnection(url.toString()); - st = conn.createStatement(); - st.execute(t_sql); - st.execute(s_sql); - } catch (SQLException e) { - destroy(); // 关闭derby数据库,并清理对应文件夹 - throw new RuntimeException("初始化表失败!", e); - } finally { - close(conn, st, null); - } + Connection conn = DriverManager.getConnection(url.toString()); + Statement st = conn.createStatement(); + st.execute(t_sql.toString()); + st.execute(s_sql.toString()); + close(conn, st, null); } - inited = true; System.out.println("数据库和表初始化完成!"); } diff --git a/db/org.tinygroup.dbrouterjdbc3/src/test/java/org/tinygroup/dbrouterjdbc3/jdbc/ShardModeSameSchemaTest.java b/db/org.tinygroup.dbrouterjdbc3/src/test/java/org/tinygroup/dbrouterjdbc3/jdbc/ShardModeSameSchemaTest.java index 74814b0b6ddf09cea32a02a261cfd886c87db617..cb5002cc7f6c6ac22a9b2b318d1153445003203d 100644 --- a/db/org.tinygroup.dbrouterjdbc3/src/test/java/org/tinygroup/dbrouterjdbc3/jdbc/ShardModeSameSchemaTest.java +++ b/db/org.tinygroup.dbrouterjdbc3/src/test/java/org/tinygroup/dbrouterjdbc3/jdbc/ShardModeSameSchemaTest.java @@ -55,52 +55,33 @@ public class ShardModeSameSchemaTest extends TestCase { "student0", "student1", "student2" }; // derby数据库存放目录 private static RouterManager routerManager; // tiny路由管理器 - private static boolean inited; // 是否已初始化 protected void setUp() throws Exception { super.setUp(); - // init(); } protected void tearDown() throws Exception { super.tearDown(); - // destroy(); } - public static void main(String[] args) { + public void test() { Connection conn = null; try { - init(); // 初始化derby数据库和表 + init(); // 初始化数据库和表 + conn = DriverManager.getConnection(URL, USER, PASSWORD); - ShardModeSameSchemaTest test = new ShardModeSameSchemaTest(); - test.relatedQueryTest(conn); - test.statementTest(conn); - test.resultSetTest(conn); - test.relatedQueryTest2(conn); + relatedQueryTest(conn); + statementTest(conn); + resultSetTest(conn); + relatedQueryTest2(conn); } catch (Exception e) { throw new RuntimeException("测试失败", e); } finally { - close(conn, null, null); + close(conn, null, null); // 关闭连接 destroy(); // 关闭derby数据库,并清理对应文件夹 } } - public void test() { - // Connection conn = null; - // try { - // conn = DriverManager.getConnection(URL, USER, PASSWORD); - // relatedQueryTest(conn); - // statementTest(conn); - // resultSetTest(conn); - // relatedQueryTest2(conn); - // } catch (Exception e) { - // destroy(); // 关闭derby数据库,并清理对应文件夹 - // throw new RuntimeException("测试失败", e); - // } finally { - // close(conn, null, null); // 关闭连接 - // } - } - /** * 两张表关联查询测试 * @@ -475,35 +456,29 @@ public class ShardModeSameSchemaTest extends TestCase { } catch (SQLException e) { // 关闭失败,忽略之 } + System.out.println("所有数据库已关闭!"); FileUtil.deleteFile("derby.log"); // 删除derby日志文件 FileUtil.deleteFile(DERBY_DBPATH); // 删除derby数据库文件夹 + System.out.println("相关目录已删除!"); - System.out.println("derby数据库清理完成!"); + System.out.println("测试现场清理完成"); } /** * 初始化derby数据库和表 * - * @throws SQLException + * @throws Exception */ - private static void init() throws SQLException { - if (inited) { // 已初始化 - return; - } + private static void init() throws Exception { + Class.forName(TINY_DRIVER); // 加载tiny数据库驱动 + Class.forName(DERBY_DRIVER).newInstance(); // 加载derby数据库驱动,调用newInstance()方法是解决有时注册加载驱动失败的问题 - try { - Class.forName(TINY_DRIVER); // 加载tiny数据库驱动 - Class.forName(DERBY_DRIVER); // 加载derby数据库驱动 - } catch (ClassNotFoundException e) { - throw new RuntimeException("数据库驱动加载失败!", e); - } - - // 初始化routerManager + // 初始化routerManager,并添加路由 routerManager = RouterManagerBeanFactory.getManager(); routerManager.addRouters(ROUTER_CONFIG); - FileUtil.deleteFile(DERBY_DBPATH); // 删除derby数据库路径 + FileUtil.deleteFile(DERBY_DBPATH); // 删除derby数据库路径,该目录不为空,则derby数据库创建失败 String derbyDbpath = DERBY_DBPATH; if (!derbyDbpath.endsWith("/") && !derbyDbpath.endsWith("\\")) { @@ -513,37 +488,29 @@ public class ShardModeSameSchemaTest extends TestCase { url.append(derbyDbpath + DERBY_DB); url.append(";create=true"); - Connection conn = DriverManager.getConnection(url.toString()); + Connection conn = DriverManager.getConnection(url.toString()); // 新建数据库 Statement st = conn.createStatement(); - try { - for (String teacher : DERBY_TEACHER_TABLES) { - StringBuffer sb = new StringBuffer(); - sb.append("CREATE TABLE "); - sb.append(teacher).append("("); - sb.append("ID int not null,"); - sb.append("NAME varchar(20))"); - st.execute(sb.toString()); - } - - for (String student : DERBY_STUDENT_TABLES) { - StringBuffer sb = new StringBuffer(); - sb.append("CREATE TABLE "); - sb.append(student); - sb.append("("); - sb.append("ID int not null,"); - sb.append("TID int,"); - sb.append("AGE int,"); - sb.append("NAME varchar(20))"); - st.execute(sb.toString()); - } - } catch (SQLException e) { - destroy(); // 关闭derby数据库,并清理对应文件夹 - throw new RuntimeException("初始化表失败!", e); - } finally { - close(conn, st, null); + for (String teacher : DERBY_TEACHER_TABLES) { // 在该数据库上新建表 + StringBuffer sb = new StringBuffer(); + sb.append("CREATE TABLE "); + sb.append(teacher).append("("); + sb.append("ID int not null,"); + sb.append("NAME varchar(20))"); + st.execute(sb.toString()); + } + for (String student : DERBY_STUDENT_TABLES) { // 在该数据库上新建表 + StringBuffer sb = new StringBuffer(); + sb.append("CREATE TABLE "); + sb.append(student); + sb.append("("); + sb.append("ID int not null,"); + sb.append("TID int,"); + sb.append("AGE int,"); + sb.append("NAME varchar(20))"); + st.execute(sb.toString()); } + close(conn, st, null); - inited = true; System.out.println("数据库和表初始化完成!"); } diff --git a/framework/org.tinygroup.vfs/pom.xml b/framework/org.tinygroup.vfs/pom.xml index 3c6aca2b32ca3a592e048c76e62192217ff21e99..9135e78368fae88c52e7b5d7321f6186d7e4dfd2 100644 --- a/framework/org.tinygroup.vfs/pom.xml +++ b/framework/org.tinygroup.vfs/pom.xml @@ -1,48 +1,49 @@ - 4.0.0 - - org.tinygroup - framework - 1.1.0-SNAPSHOT - - org.tinygroup.vfs - org.tinygroup.vfs - http://maven.apache.org - - UTF-8 - - - - org.tinygroup - org.tinygroup.exception - ${project.version} - - - commons-net - commons-net - 2.0 - - - org.tinygroup - org.tinygroup.vfs - ${project.version} - - - commons-net - commons-net - 3.3 - - - junit - junit - 3.8.1 - test - - - org.apache.ftpserver - ftpserver-core - 1.0.6 - test - - - + 4.0.0 + + org.tinygroup + framework + 1.1.0-SNAPSHOT + + org.tinygroup.vfs + + + org.tinygroup + org.tinygroup.exception + ${project.version} + + + commons-net + commons-net + 2.0 + + + commons-net + commons-net + 3.3 + + + junit + junit + 3.8.1 + test + + + org.apache.ftpserver + ftpserver-core + 1.0.6 + test + + + org.slf4j + slf4j-api + + + + + org.slf4j + slf4j-api + 1.6.6 + + + \ No newline at end of file diff --git a/framework/org.tinygroup.vfs/src/test/java/org/tinygroup/vfs/impl/FtpFileObjectTest.java b/framework/org.tinygroup.vfs/src/test/java/org/tinygroup/vfs/impl/FtpFileObjectTest.java index 037d268f5f6b6b028af742ce706a1741815fe266..edbf94585a89119a5b615bea92e79b239d1889f1 100644 --- a/framework/org.tinygroup.vfs/src/test/java/org/tinygroup/vfs/impl/FtpFileObjectTest.java +++ b/framework/org.tinygroup.vfs/src/test/java/org/tinygroup/vfs/impl/FtpFileObjectTest.java @@ -53,24 +53,23 @@ public class FtpFileObjectTest extends TestCase { protected void tearDown() throws Exception { super.tearDown(); - if (ftpServer != null) { - ftpServer.stop(); // 停止服务器 - System.out.println("停止服务器成功"); - } - deleteFile(rootDir); // 清理文件,文件夹 } - public static void main(String[] args) throws Exception { - init(); // 初始化ftp服务器 - - FtpFileObjectTest ftpFileObjectTest = new FtpFileObjectTest(); - ftpFileObjectTest.fileTest(); - ftpFileObjectTest.folderTest(); - ftpFileObjectTest.folderTest2(); - ftpFileObjectTest.folderTest3(); + public static void main(String[] args) { + try { + init(); // 初始化 + + FtpFileObjectTest test = new FtpFileObjectTest(); + test.fileTest(); + test.folderTest(); + test.folderTest2(); + test.folderTest3(); + } catch (Exception e) { + throw new RuntimeException("测试失败", e); + } finally { + destroy(); + } - System.out.println("ftp服务器对应目录删除成功"); - deleteFile(rootDir); // 清理文件,文件夹 } private static void init() throws Exception { @@ -96,18 +95,25 @@ public class FtpFileObjectTest extends TestCase { ftpServer.start(); // 启动服务器 System.out.println("ftp服务器启动成功,服务器根路径:" + rootDir); } catch (FtpException e) { - deleteFile(rootDir); // 清理文件,文件夹 throw new RuntimeException("ftp服务器启动失败", e); } - } - public void test() throws Exception { - // init(); // 初始化ftp服务器 + inited = true; + } + public void test() { + // try { + // init(); + // // fileTest(); // folderTest(); // folderTest2(); // folderTest3(); + // } catch (Exception e) { + // throw new RuntimeException("测试失败", e); + // } finally { + // destroy(); + // } } private void fileTest() throws Exception { @@ -305,6 +311,7 @@ public class FtpFileObjectTest extends TestCase { try { fos.close(); } catch (IOException e) { + throw new RuntimeException("内容写入文件失败", e); } } if (pw != null) { @@ -363,8 +370,17 @@ public class FtpFileObjectTest extends TestCase { deleteFile(pathname + "/" + fileList[i]); } } - System.out.println(file.getAbsolutePath() + ",删除成功"); file.delete(); } + private static void destroy() { + if (ftpServer != null) { + ftpServer.stop(); // 停止服务器 + System.out.println("停止服务器成功"); + } + deleteFile(rootDir); // 清理文件,文件夹 + System.out.println("ftp服务器对应目录删除成功"); + System.out.println("测试现场处理完成"); + } + }