package org.n3r.eql.trans;
import com.google.common.collect.Maps;
import lombok.SneakyThrows;
import org.n3r.eql.config.EqlConfig;
import org.n3r.eql.util.S;
import java.sql.Connection;
import java.util.Map;
public class EqlSimpleConnection extends AbstractEqlConnection {
private SimpleDataSource dataSource;
@Override @SneakyThrows
public Connection getConnection(String dbName) {
return dataSource.getConnection();
}
@Override
public void destroy() {
dataSource.forceCloseAll();
}
@Override
public String getDriverName() {
return dataSource.getJdbcDriver();
}
@Override
public String getJdbcUrl() {
return dataSource.getJdbcUrl();
}
@Override
public void initialize(EqlConfig eqlConfig) {
String driver = eqlConfig.getStr("driver");
String url = eqlConfig.getStr("url");
String user = eqlConfig.getStr("username");
if (S.isBlank(user)) user = eqlConfig.getStr("user");
String pass = eqlConfig.getStr("password");
loadDataSource(driver, url, user, pass);
}
private void loadDataSource(String driver, String url, String user, String pass) {
Map<String, String> properties = Maps.newHashMap();
properties.put(SimpleDataSource.PROP_JDBC_DRIVER, driver);
properties.put(SimpleDataSource.PROP_JDBC_URL, url);
properties.put(SimpleDataSource.PROP_JDBC_USERNAME, user);
properties.put(SimpleDataSource.PROP_JDBC_PASSWORD, pass);
dataSource = new SimpleDataSource(properties);
}
}