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.OpenaireExporterConfig.Jdbc;
7
import eu.dnetlib.enabling.is.lookup.rmi.ISLookUpService;
8
import org.apache.commons.dbcp2.BasicDataSource;
9
import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;
10
import org.springframework.beans.factory.annotation.Autowired;
11
import org.springframework.context.annotation.Bean;
12
import org.springframework.context.annotation.Configuration;
13

    
14
/**
15
 * Created by claudio on 07/07/2017.
16
 */
17
@Configuration
18
public class DNetOpenaireExporterBeanFactory {
19

    
20
	@Autowired
21
	private OpenaireExporterConfig config;
22

    
23
	@Bean
24
	public ISLookUpService getLookUpService() {
25
		final JaxWsProxyFactoryBean jaxWsProxyFactory = new JaxWsProxyFactoryBean();
26
		jaxWsProxyFactory.setServiceClass(ISLookUpService.class);
27
		jaxWsProxyFactory.setAddress(config.getIsLookupUrl());
28
		return (ISLookUpService) jaxWsProxyFactory.create();
29
	}
30

    
31
	@Bean
32
	public BasicDataSource getProjectDataSource() {
33
		final Jdbc jdbc = config.getJdbc();
34
		return getDatasource(
35
				jdbc.getDriverClassName(),
36
				jdbc.getUrl(),
37
				jdbc.getUser(),
38
				jdbc.getPwd(),
39
				jdbc.getMinIdle(),
40
				jdbc.getMaxRows());
41
	}
42

    
43
	private BasicDataSource getDatasource(String driverClassName, String jdbcUrl, String jdbcUser, String jdbcPwd, int jdbcMinIdle, int jdbcMaxIdle) {
44
		final BasicDataSource d = new BasicDataSource();
45
		d.setDriverClassName(driverClassName);
46
		d.setUrl(jdbcUrl);
47
		d.setUsername(jdbcUser);
48
		d.setPassword(jdbcPwd);
49
		d.setMinIdle(jdbcMinIdle);
50
		d.setMaxIdle(jdbcMaxIdle);
51
		return d;
52
	}
53

    
54
	@Bean
55
	public MongoClient getMongoClient() {
56
		return new MongoClient(
57
				new ServerAddress(config.getDatasource().getMongoHost(), config.getDatasource().getMongoPort()),
58
				MongoClientOptions.builder().connectionsPerHost(config.getDatasource().getMongoConnectionsPerHost()).build());
59
	}
60

    
61

    
62
}
(2-2/4)