tim@130: /** tim@130: * tim@130: */ tim@130: package de.intevation.gnv.geobackend.base.connectionpool; tim@130: tim@130: import java.util.Properties; tim@130: tim@130: import org.apache.log4j.Logger; tim@130: tim@130: import de.intevation.gnv.geobackend.sde.connectionpool.ArcSDEConnectionPool; tim@130: tim@130: /** tim@130: * Factoryimplementation for the Interface ConnectionPool. tim@130: * This factory delivers Instances of the Interface ConnectionPool. tim@130: * @author Tim Englich tim@130: */ tim@130: public class ConnectionPoolFactory { tim@130: tim@132: /** tim@130: * the logger, used to log exceptions and additonaly information tim@130: */ tim@130: private static Logger log = Logger.getLogger(ConnectionPoolFactory.class); tim@132: tim@130: tim@130: /** tim@130: * The singleton Instance of this Factory. tim@130: */ tim@132: private static ConnectionPoolFactory instance = null; tim@132: tim@132: /** tim@132: * The ConnectionPool providing the Connections to the DatabaseBackends tim@132: */ tim@132: private ConnectionPool connectionPool = null; tim@132: tim@132: /** tim@132: * Basic-Constructor of this Class tim@132: */ tim@132: private ConnectionPoolFactory() { tim@132: super(); tim@132: } tim@132: tim@132: /** tim@132: * This Method provides an singleton Instance of this Class. tim@132: * @return an singleton Instance of this Class tim@132: */ tim@132: public static ConnectionPoolFactory getInstance(){ tim@132: if (instance == null){ tim@132: instance = new ConnectionPoolFactory(); tim@132: } tim@132: return instance; tim@132: } tim@132: tim@132: tim@132: /** tim@132: * Getting the ConnectionPool tim@132: * @return the ConnectionPool tim@132: */ tim@132: public ConnectionPool getConnectionPool(){ tim@132: return this.connectionPool; tim@132: } tim@132: tim@132: /** tim@132: * Initializes the ConnectionPool. tim@132: * Should only be called once on system startup tim@132: * @param properties the Properties for the Individual Configuration of the ConnectionPool tim@132: */ tim@132: public void initializeConnectionPool(Properties properties){ tim@132: log.debug("ConnectionPoolFactory.initializeConnectionPool"); tim@132: if (this.connectionPool == null){ tim@132: //TODO: Hier könnte anhand eines Flags die Instanz des Connectionpools umgeschaltet werden. tim@132: this.connectionPool = new ArcSDEConnectionPool(); tim@132: this.connectionPool.initialize(properties); tim@132: }else{ tim@132: log.warn("ConnectionPool already initialized"); tim@132: } tim@132: } tim@132: tim@132: /** tim@132: * Checks if the ConnectionPool has already been initialized. tim@132: * @return true if the ConnectionPool is initialized. tim@132: */ tim@132: public boolean isInitialized(){ tim@132: return this.connectionPool != null; tim@132: } tim@130: }