Project

General

Profile

1
package eu.dnetlib;
2

    
3
import com.mongodb.MongoClient;
4
import com.mongodb.MongoClientOptions;
5
import com.mongodb.ServerAddress;
6
import eu.dnetlib.enabling.is.lookup.rmi.ISLookUpService;
7
import org.apache.commons.dbcp2.BasicDataSource;
8
import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;
9
import org.springframework.beans.factory.annotation.Value;
10
import org.springframework.context.annotation.Bean;
11
import org.springframework.context.annotation.Configuration;
12

    
13
/**
14
 * Created by Alessia Bardi on 31/03/17.
15
 *
16
 * @author Alessia Bardi
17
 */
18
@Configuration
19
public class OpenaireExporterConfig {
20

    
21
	// POSTGRES
22
	@Value("${spring.datasource.driverClassName}")
23
	private String driverClassName;
24
	@Value("${openaire.exporter.jdbc.url}")
25
	private String jdbcUrl;
26
	@Value("${openaire.exporter.jdbc.user}")
27
	private String jdbcUser;
28
	@Value("${openaire.exporter.jdbc.pwd}")
29
	private String jdbcPwd;
30
	@Value("${openaire.exporter.jdbc.minIdle}")
31
	private int jdbcMinIdle;
32
	@Value("${openaire.exporter.jdbc.maxIdle}")
33
	private int jdbcMaxidle;
34

    
35
	// MONGODB
36
	@Value("${openaire.datasource.publisher.mongodb.host}")
37
	private String mongodbHost;
38
	@Value("${openaire.datasource.publisher.mongodb.port}")
39
	private int mongodbPort;
40
	@Value("${openaire.datasource.publisher.mongodb.connectionsPerHost}")
41
	private int connectionsPerHost;
42

    
43
	@Value("${services.is.lookup.url}")
44
	private String isLookupUrl;
45

    
46
	@Bean
47
	public ISLookUpService getLookUpService() {
48
		final JaxWsProxyFactoryBean jaxWsProxyFactory = new JaxWsProxyFactoryBean();
49
		jaxWsProxyFactory.setServiceClass(ISLookUpService.class);
50
		jaxWsProxyFactory.setAddress(isLookupUrl);
51
		return (ISLookUpService) jaxWsProxyFactory.create();
52
	}
53

    
54
	@Bean
55
	public BasicDataSource getProjectDataSource() {
56
		return getDatasource(driverClassName, jdbcUrl, jdbcUser, jdbcPwd, jdbcMinIdle, jdbcMaxidle);
57
	}
58

    
59
	private BasicDataSource getDatasource(String driverClassName, String jdbcUrl, String jdbcUser, String jdbcPwd, int jdbcMinIdle, int jdbcMaxIdle) {
60
		BasicDataSource d =  new BasicDataSource();
61
		d.setDriverClassName(driverClassName);
62
		d.setUrl(jdbcUrl);
63
		d.setUsername(jdbcUser);
64
		d.setPassword(jdbcPwd);
65
		d.setMinIdle(jdbcMinIdle);
66
		d.setMaxIdle(jdbcMaxIdle);
67
		return d;
68
	}
69

    
70
	@Bean
71
	public MongoClient getMongoClient() {
72
		return new MongoClient(
73
				new ServerAddress(mongodbHost, mongodbPort),
74
				MongoClientOptions.builder().connectionsPerHost(connectionsPerHost).build());
75
	}
76

    
77
}
(2-2/3)