package com.liveramp.hank.monitor.notifier.db; import com.liveramp.hank.config.InvalidConfigurationException; import com.liveramp.hank.monitor.notifier.AbstractNotifierFactory; import com.liveramp.hank.monitor.notifier.NotifierFactory; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.util.Map; public class SQLNotifierFactory extends AbstractNotifierFactory implements NotifierFactory { private static Logger LOG = LoggerFactory.getLogger(SQLNotifierFactory.class); protected static final String DRIVER = "driver"; protected static final String CONNECTION_URL = "connection_url"; protected static final String USERNAME = "username"; protected static final String PASSWORD = "password"; protected static final String TARGET_VERSION_NOTIFICATIONS_TABLE = "target_version_notifications_table"; @Override public void validate(Map<String, Object> configuration) throws InvalidConfigurationException { getRequiredString(configuration, DRIVER); getRequiredString(configuration, CONNECTION_URL); getRequiredString(configuration, USERNAME); getRequiredString(configuration, PASSWORD); getRequiredString(configuration, TARGET_VERSION_NOTIFICATIONS_TABLE); } @Override public SQLNotifier createNotifier(Map<String, Object> configuration, String name, String webUiUrl) { String driver = getString(configuration, DRIVER); String connectionUrl = getString(configuration, CONNECTION_URL); String username = getString(configuration, USERNAME); String password = getString(configuration, PASSWORD); String targetVersionNotificationsTable = getString(configuration, TARGET_VERSION_NOTIFICATIONS_TABLE); ISQLNotifierConfiguration notifierConfiguration = new SQLNotifierConfiguration(driver, connectionUrl, username, password, targetVersionNotificationsTable); return new SQLNotifier(notifierConfiguration); } }