package org.n3r.eql.trans;
import com.zaxxer.hikari.HikariConfig;
import com.zaxxer.hikari.HikariDataSource;
import lombok.SneakyThrows;
import org.n3r.eql.config.EqlConfig;
import org.n3r.eql.util.EqlUtils;
import org.n3r.eql.util.O;
import java.sql.Connection;
import java.util.Map;
public class EqlHikariConnection extends AbstractEqlConnection {
HikariDataSource dataSource;
@Override
public void initialize(EqlConfig eqlConfig) {
Map<String, String> params = eqlConfig.params();
EqlUtils.compatibleWithUserToUsername(params);
HikariConfig config = new HikariConfig();
O.populate(config, params);
dataSource = new HikariDataSource(config);
}
@Override @SneakyThrows
public Connection getConnection(String dbName) {
return dataSource.getConnection();
}
@Override
public void destroy() {
dataSource.close();
}
@Override
public String getDriverName() {
return EqlUtils.getDriverNameFromConnection(dataSource);
}
@Override
public String getJdbcUrl() {
return dataSource.getJdbcUrl();
}
}