1 2 package com.espada.bugtracker.persistence; 3 4 import java.util.Properties ; 5 import java.sql.Connection ; 6 import com.espada.bugtracker.util.PropertyFactory; 7 8 11 public abstract class DatabaseConnectionPool 12 { 13 14 public static Connection getConnection() 15 throws DatabaseConnectionException 16 { 17 boolean flag = true; 18 if(dbServer == null) 19 flag = readConfig(); 20 if(dbLogFile == null) 21 flag = flag && readConfig(); 22 if(flag) 23 { 24 if(myDBCB == null) 25 try 26 { 27 myDBCB = new DbConnectionBroker(dbDriver, dbServer, dbUser, dbPwd, dbMinConns, dbMaxConns, dbLogFile, dbMaxConnTime); 28 } 29 catch(Exception exception) 30 { 31 throw new DatabaseConnectionException("Database Connection failed.- Please Check Driver"); 32 } 33 return myDBCB.getConnection(); 34 } else 35 { 36 throw new DatabaseConnectionException("Config File not found"); 37 } 38 } 39 40 public static void freeConnection(Connection connection) 41 { 42 myDBCB.freeConnection(connection); 43 } 44 45 private static boolean readConfig() 46 { 47 try 48 { 49 if(myDBCB != null) 50 myDBCB.destroy(); 51 myDBCB = null; 52 Properties p = PropertyFactory.getInstance(); 53 dbServer = (String ) p.get("bugtracker.database.serverString"); 54 dbUser = (String ) p.get("bugtracker.database.username"); 55 dbPwd = (String ) p.get("bugtracker.database.password"); 56 dbDriver = (String ) p.get("bugtracker.database.driver"); 57 dbMinConns = Integer.parseInt((String ) p.get("bugtracker.database.minConns")); 58 dbMaxConns = Integer.parseInt((String ) p.get("bugtracker.database.maxConns")); 59 dbMaxConnTime = Double.parseDouble((String ) p.get("bugtracker.database.maxConnTime")); 60 dbLogFile = (String ) p.get("bugtracker.database.logFile"); 61 return true; 62 } 63 catch(Exception exception) 64 { 65 return false; 66 } 67 } 68 69 public DatabaseConnectionPool() 70 { 71 } 72 73 private static String dbServer = null; 74 private static String dbUser = null; 75 private static String dbPwd = null; 76 private static String dbDriver = null; 77 private static DbConnectionBroker myDBCB = null; 78 private static int dbMinConns; 79 private static int dbMaxConns; 80 private static double dbMaxConnTime; 81 private static String dbLogFile = null; 82 83 } 84 | Popular Tags |