package com.tyndalehouse.step.dataloader; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class ClientDbProvider { // TODO: shove this in a properties file private static String clientConnection = "jdbc:derby:"; private static Connection connection = null; public synchronized static Connection getConnection(final String dbPath) throws SQLException { if (connection == null) { final String connectionString = clientConnection + dbPath + ";create=true"; System.out.println("Using connection string: " + connectionString); connection = DriverManager.getConnection(connectionString); } return connection; } public static void finaliseConnection(final Connection connection) throws SQLException { if (connection != null && !connection.isClosed()) { connection.close(); } } public static Connection getConnection() { return connection; } public static void tearDown() { try { finaliseConnection(getConnection()); DriverManager.getConnection("jdbc:derby:;shutdown=true"); } catch (final SQLException e) { // shutdown exception } } }