Project

General

Profile

1
package eu.dnetlib.repo.manager.config;
2

    
3
import org.apache.commons.dbcp.BasicDataSource;
4
import org.apache.log4j.Logger;
5
import org.springframework.beans.factory.annotation.Value;
6
import org.springframework.context.annotation.Bean;
7
import org.springframework.context.annotation.Configuration;
8
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
9
import org.springframework.transaction.annotation.EnableTransactionManagement;
10

    
11
@Configuration
12
@EnableTransactionManagement
13
public class DatasourceConfiguration {
14

    
15
    private static Logger LOGGER = Logger.getLogger(DatasourceConfiguration.class);
16

    
17
    @Value("${repomanager.db.driverClassName}")
18
    private String driverClassname;
19

    
20
    @Value("${repomanager.db.url}")
21
    private String URL;
22

    
23
    @Value("${repomanager.db.username}")
24
    private String username;
25

    
26
    @Value("${repomanager.db.password}")
27
    private String password;
28

    
29
    @Bean
30
    public BasicDataSource dataSource(){
31
        BasicDataSource basicDataSource = new BasicDataSource();
32
        basicDataSource.setDriverClassName(driverClassname);
33
        basicDataSource.setUrl(URL);
34
        basicDataSource.setUsername(username);
35
        basicDataSource.setPassword(password);
36
        basicDataSource.setMaxIdle(10);
37
        basicDataSource.setMaxActive(100);
38
        basicDataSource.setMaxWait(1000);
39
        basicDataSource.setValidationQuery("SELECT 1;");
40
        basicDataSource.setTestOnBorrow(true);
41
        basicDataSource.setTestOnReturn(true);
42
        basicDataSource.setTestWhileIdle(true);
43
        basicDataSource.setTimeBetweenEvictionRunsMillis(1200000);
44
        basicDataSource.setMinEvictableIdleTimeMillis(1800000);
45
        basicDataSource.setMinEvictableIdleTimeMillis(5);
46
        basicDataSource.setPoolPreparedStatements(true);
47
        basicDataSource.setDefaultAutoCommit(true);
48

    
49
        return basicDataSource;
50
    }
51

    
52
    @Bean
53
    public DataSourceTransactionManager txManager(){
54
        DataSourceTransactionManager txManager = new DataSourceTransactionManager();
55
        txManager.setDataSource(dataSource());
56
        return txManager;
57
    }
58

    
59
}
(4-4/10)