From a3cfb0b210255ea4d05cc3a5ba513cecf65d7d31 Mon Sep 17 00:00:00 2001 From: ribeaudc <ribeaudc> Date: Mon, 17 Dec 2007 12:35:03 +0000 Subject: [PATCH] change: - 'DatabaseConfigurationContext' implements 'DisposableBean'. - Test method removed from the 'broken' group. SVN: 3123 --- .../DatabaseConfigurationContext.java | 65 ++++++++++--------- 1 file changed, 33 insertions(+), 32 deletions(-) diff --git a/dbmigration/source/java/ch/systemsx/cisd/dbmigration/DatabaseConfigurationContext.java b/dbmigration/source/java/ch/systemsx/cisd/dbmigration/DatabaseConfigurationContext.java index c8888b45e4d..34d58d5ee9a 100644 --- a/dbmigration/source/java/ch/systemsx/cisd/dbmigration/DatabaseConfigurationContext.java +++ b/dbmigration/source/java/ch/systemsx/cisd/dbmigration/DatabaseConfigurationContext.java @@ -22,7 +22,7 @@ import java.text.MessageFormat; import javax.sql.DataSource; import org.apache.commons.dbcp.BasicDataSource; -import org.apache.commons.lang.builder.ToStringBuilder; +import org.springframework.beans.factory.DisposableBean; import org.springframework.jdbc.support.lob.LobHandler; import ch.systemsx.cisd.common.db.ISequencerHandler; @@ -34,14 +34,14 @@ import ch.systemsx.cisd.common.exceptions.ConfigurationFailureException; * * @author Franz-Josef Elmer */ -public class DatabaseConfigurationContext +public class DatabaseConfigurationContext implements DisposableBean { private String driver; private LobHandler lobHandler; private ISequencerHandler sequencerHandler; - + private String adminURL; private String adminUser; @@ -77,6 +77,20 @@ public class DatabaseConfigurationContext owner = System.getProperty("user.name").toLowerCase(); } + private final static void closeConnection(final BasicDataSource dataSource) + { + if (dataSource != null) + { + try + { + dataSource.close(); + } catch (SQLException ex) + { + throw CheckedExceptionTunnel.wrapIfNecessary(ex); + } + } + } + /** * Creates a <code>DataSource</code> for this context. */ @@ -105,9 +119,6 @@ public class DatabaseConfigurationContext myDataSource.setPassword(""); myDataSource.setMinIdle(0); myDataSource.setMaxIdle(0); - // TODO 2007-12-05, Franz-Josef Elmer: Remove this magic line of code if commons DHCP 1.3 is out and closing - // connections correctly - ToStringBuilder.reflectionToString(myDataSource); return myDataSource; } @@ -122,7 +133,7 @@ public class DatabaseConfigurationContext } return dataSource; } - + /** * Returns data source for admin purposes. */ @@ -141,31 +152,6 @@ public class DatabaseConfigurationContext return adminDataSource; } - /** - * Closes data sources. - */ - public void closeDataSources() - { - closeDataSource(dataSource); - dataSource = null; - closeDataSource(adminDataSource); - adminDataSource = null; - } - - private void closeDataSource(BasicDataSource ds) - { - if (ds != null) - { - try - { - ds.close(); - } catch (SQLException ex) - { - throw CheckedExceptionTunnel.wrapIfNecessary(ex); - } - } - } - /** * Returns the user name of the owner of the database. */ @@ -479,4 +465,19 @@ public class DatabaseConfigurationContext } } + /** Closes opened database connections. */ + public final void closeConnections() + { + closeConnection(dataSource); + closeConnection(adminDataSource); + } + + // + // DisposableBean + // + + public final void destroy() throws Exception + { + closeConnections(); + } } -- GitLab