49 lines
1.4 KiB
Java
49 lines
1.4 KiB
Java
package eu.eudat.configurations.http;
|
|
|
|
import eu.eudat.logic.handlers.CircuitBreakerHttpClientInterceptor;
|
|
import eu.eudat.logic.utilities.circuitbreaker.Circuit;
|
|
import eu.eudat.logic.utilities.circuitbreaker.CircuitBreaker;
|
|
import org.apache.commons.collections4.CollectionUtils;
|
|
import org.springframework.context.annotation.Bean;
|
|
import org.springframework.context.annotation.Configuration;
|
|
import org.springframework.http.client.ClientHttpRequestInterceptor;
|
|
import org.springframework.web.client.RestTemplate;
|
|
|
|
import java.util.ArrayList;
|
|
import java.util.List;
|
|
|
|
/**
|
|
* Created by ikalyvas on 2/25/2019.
|
|
*/
|
|
@Configuration
|
|
public class HttpClientConfigurations {
|
|
|
|
@Bean
|
|
public RestTemplate loggerClient(CircuitBreaker circuitBreaker) {
|
|
RestTemplate restTemplate = new RestTemplate();
|
|
|
|
List<ClientHttpRequestInterceptor> interceptors
|
|
= restTemplate.getInterceptors();
|
|
if (CollectionUtils.isEmpty(interceptors)) {
|
|
interceptors = new ArrayList<>();
|
|
}
|
|
interceptors.add(new CircuitBreakerHttpClientInterceptor(circuitBreaker));
|
|
restTemplate.setInterceptors(interceptors);
|
|
return restTemplate;
|
|
}
|
|
|
|
@Bean
|
|
public CircuitBreaker circuitBreaker(){
|
|
CircuitBreaker circuitBreaker = new CircuitBreaker();
|
|
circuitBreaker.addCircuitResolver(
|
|
new Circuit.CircuitBuilder()
|
|
.url("http://localhost:31311")
|
|
.method("POST")
|
|
.build(),
|
|
httpRequest -> {
|
|
System.out.println(httpRequest);
|
|
});
|
|
return circuitBreaker;
|
|
}
|
|
}
|