openaire-usage-stats-api-r5/src/main/java/eu/dnetlib/usagestats/config/DataSourceConfiguration.java

63 lines
2.3 KiB
Java
Executable File

package eu.dnetlib.usagestats.config;
//import org.springframework.boot.jdbc.DataSourceBuilder;
import com.zaxxer.hikari.HikariConfig;
import com.zaxxer.hikari.HikariDataSource;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import javax.sql.DataSource;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.ConfigurationProperties;
/**
* Created by D.Pierrakos.
*/
@Configuration
public class DataSourceConfiguration {
private final Logger log = Logger.getLogger(this.getClass());
//@Value("${usagestats.driverClassName}")
//private String driverClassName;
@Value("${usagestats.url}")
private String dbURL;
//@ConfigurationProperties(prefix = "usagestats")
@Bean
@Primary
public DataSource getDataSource() {
// PoolProperties poolProperties = new PoolProperties();
// poolProperties.setUrl(dbURL);
// poolProperties.setDriverClassName(driverClassName);
// log.info("dbURL " + dbURL);
// log.info("driverClassName " + driverClassName);
//
// poolProperties.setTestOnBorrow(true);
// poolProperties.setValidationQuery("SELECT 1");
// poolProperties.setValidationInterval(0);
// DataSource ds = new org.apache.tomcat.jdbc.pool.DataSource(poolProperties);
// return ds;
HikariConfig hikariConfig = new HikariConfig();
//hikariConfig.setDriverClassName("com.cloudera.impala.jdbc41.Driver");
hikariConfig.setJdbcUrl(dbURL);
log.info("dbURL " + dbURL);
//log.info("driverClassName " + driverClassName);
//
// hikariConfig.setMaximumPoolSize(5);
// hikariConfig.setMaximumPoolSize(100);
// hikariConfig.setIdleTimeout(300);
// hikariConfig.setMaximumPoolSize(20);
// hikariConfig.setConnectionTimeout(300000);
// hikariConfig.setConnectionTimeout(120000);
// hikariConfig.setLeakDetectionThreshold(300000);
hikariConfig.setConnectionTestQuery("SELECT 1");
hikariConfig.setPoolName("UsageStats_HikariCP");
HikariDataSource dataSource = new HikariDataSource(hikariConfig);
return dataSource;
}
}