1 16 package org.outerj.daisy.backupTool.dbDump; 17 18 import java.util.regex.Matcher ; 19 import java.util.regex.Pattern ; 20 21 public class DbDumperFactory { 22 public static DbDumper createDbDumper(String dburl, String username, String password) throws Exception { 23 Pattern urlPattern = Pattern.compile("jdbc:(.*)://(([^\\?:]+)(:(\\d*))?)/([^\\?:]+)(\\?.+)?"); 24 Matcher urlMatcher = urlPattern.matcher(dburl); 25 26 if (!urlMatcher.matches()) 27 throw new Exception ("Please verify that the database url is correct " + dburl); 28 29 String dbType = urlMatcher.group(1); 30 String dbName = urlMatcher.group(6); 31 Integer port = new Integer (urlMatcher.group(5) == null ? "0" : urlMatcher.group(5)); 32 String hostName = urlMatcher.group(3); 33 34 dbType = dbType.substring(0, 1).toUpperCase() + dbType.substring(1); 35 36 Class dumperClazz = Class.forName(MysqlDbDumper.class.getPackage().getName() + "." + dbType + "DbDumper"); 37 38 Object [] valueParams = new Object [] { dbName, hostName, port, password, username }; 39 Class [] classParams = new Class [] { String .class, String .class, Integer .class, String .class, String .class }; 40 41 AbstractDbDumper dbDumper = (AbstractDbDumper) dumperClazz.getConstructor(classParams).newInstance(valueParams); 42 43 return dbDumper; 44 } 45 } | Popular Tags |