package com.liveramp.hank.monitor.notifier.db; import com.liveramp.hank.monitor.notifier.Notification; import com.liveramp.hank.monitor.notifier.Notifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class SQLNotifier implements Notifier { private static Logger LOG = LoggerFactory.getLogger(SQLNotifier.class); private Connection connection; private ISQLNotifierConfiguration configuration; public SQLNotifier(ISQLNotifierConfiguration configuration) { this.configuration = configuration; } @Override public void doNotify(Notification notification) { } @Override public void stop() { if (connection != null) { try { connection.close(); } catch (SQLException e) { LOG.warn("Cannot close database", e); } } } private Connection getConnection() { if (connection == null) { try { Class.forName(configuration.getDriver()); connection = DriverManager.getConnection(configuration.getConnectionUrl(), configuration.getUsername(), configuration.getPassword()); } catch (ClassNotFoundException e) { LOG.warn("Cannot find SQL driver " + configuration.getDriver(), e); } catch (SQLException e) { LOG.warn("Cannot get SQL connection", e); } } return connection; } }