package org.infinispan.server.test.util.jdbc; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import org.infinispan.commons.logging.Log; import org.infinispan.commons.logging.LogFactory; /** * @author <a href="mailto:mgencur@redhat.com">Martin Gencur</a> * @author <a href="mailto:vchepeli@redhat.com">Vitalii Chepeliuk</a> * @since 7.0 */ public class SimpleConnectionFactory { private static final Log log = LogFactory.getLog(SimpleConnectionFactory.class); private final String connectionUrl; private final String userName; private final String password; public SimpleConnectionFactory(String connectionUrl, String userName, String password) { this.connectionUrl = connectionUrl; this.userName = userName; this.password = password; } public void start(String driverClass) { loadDriver(driverClass); } public Connection getConnection() { try { Connection connection = DriverManager.getConnection(connectionUrl, userName, password); if (connection == null) throw new RuntimeException("Received null connection from the DriverManager!"); return connection; } catch (SQLException e) { throw new RuntimeException("Could not obtain a new connection", e); } } public void releaseConnection(Connection conn) { try { conn.close(); } catch (SQLException e) { log.warnf(e, "Error closing connection %s", conn); } } private void loadDriver(String driverClass) { try { Class.forName(driverClass); } catch (ClassNotFoundException e) { log.errorf(e, "Driver class %s not found in classpath", driverClass); } } @Override public String toString() { return "SimpleConnectionFactory{" + "connectionUrl='" + connectionUrl + '\'' + ", userName='" + userName + '\'' + "} " + super.toString(); } }