Project

General

Profile

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

    
3
import org.apache.log4j.Logger;
4
import org.springframework.beans.factory.annotation.Value;
5
import org.springframework.cloud.client.circuitbreaker.EnableCircuitBreaker;
6
import org.springframework.context.annotation.*;
7
import org.springframework.data.redis.connection.jedis.JedisConnectionFactory;
8
import org.springframework.http.HttpHeaders;
9
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
10
import org.springframework.session.data.redis.config.annotation.web.http.EnableRedisHttpSession;
11
import org.springframework.session.web.http.CookieSerializer;
12
import org.springframework.session.web.http.DefaultCookieSerializer;
13
import org.springframework.web.client.RestTemplate;
14

    
15
import javax.annotation.PostConstruct;
16

    
17
@Configuration
18
@EnableRedisHttpSession
19
@EnableAspectJAutoProxy
20
@EnableCircuitBreaker
21
@PropertySource(value = {"classpath:application.properties"} )
22
@ComponentScan(basePackages = "eu.dnetlib.repo.manager.*")
23
public class Config {
24

    
25
    private static Logger LOGGER = Logger.getLogger(Config.class);
26

    
27
    @Value("${redis.host}")
28
    private String host;
29

    
30
    @Value("${redis.port:6379}")
31
    private String port;
32

    
33
    @Value("${redis.password}")
34
    private String password;
35

    
36
    @Value("${aai.mode}")
37
    private String aai_mode;
38

    
39
    @PostConstruct
40
    private void init(){
41
        LOGGER.info(String.format("Redis : %s Port : %s Password : %s",host,port,password));
42
    }
43

    
44
    @Bean
45
    public JedisConnectionFactory connectionFactory() {
46
        LOGGER.info(String.format("Redis : %s Port : %s Password : %s",host,port,password));
47
        JedisConnectionFactory jedisConnectionFactory = new JedisConnectionFactory();
48
        jedisConnectionFactory.setHostName(host);
49
        jedisConnectionFactory.setPort(Integer.parseInt(port));
50
        jedisConnectionFactory.setUsePool(true);
51
        if(password != null) jedisConnectionFactory.setPassword(password);
52
        return jedisConnectionFactory;
53
    }
54

    
55
    @Bean
56
    public CookieSerializer cookieSerializer() {
57
        DefaultCookieSerializer serializer = new DefaultCookieSerializer();
58
        serializer.setCookieName("openAIRESession");
59
        serializer.setCookiePath("/");
60
        if(aai_mode.equalsIgnoreCase("production") || aai_mode.equalsIgnoreCase("beta"))
61
            serializer.setDomainName(".openaire.eu");
62
//        serializer.setDomainName(".athenarc.gr");
63
        LOGGER.info("Serializer : " + serializer);
64
        return serializer;
65
    }
66

    
67
    @Bean
68
    public RestTemplate restTemplate() {
69
        RestTemplate restTemplate = new RestTemplate();
70
        restTemplate.getMessageConverters().add(new MappingJackson2HttpMessageConverter());
71
        HttpHeaders httpHeaders = new HttpHeaders();
72
        httpHeaders.set("Content-Type", "application/json");
73
        return restTemplate;
74
    }
75

    
76
}
(2-2/6)