import java.lang.Override; public class LatestAndGreatestConnectionProviderImpl implements ConnectionProvider, Startable, Stoppable, Configurable { private LatestAndGreatestPoolBuilder lagPoolBuilder; private LatestAndGreatestPool lagPool; private boolean available = false; @Override public void configure(Map configurationValues) { // extract our config from the settings map lagPoolBuilder = buildBuilder( configurationValues ); } @Override public void start() { // start the underlying pool lagPool = lagPoolBuilder.buildPool(); available = true; } @Override public void stop() { available = false; // stop the underlying pool lagPool.shutdown(); } @Override public Connection getConnection() throws SQLException { if ( !available ) { throwException( "LatestAndGreatest ConnectionProvider not available for use" ) } return lagPool.borrowConnection(); } @Override public void closeConnection(Connection conn) throws SQLException { if ( !available ) { warn( "LatestAndGreatest ConnectionProvider not available for use" ) } if ( conn == null ) { return; } lagPool.releaseConnection( conn ); } ... }