28 lines
956 B
Java
28 lines
956 B
Java
package eu.eudat.logic.handlers;
|
|
|
|
import eu.eudat.logic.utilities.circuitbreaker.CircuitBreaker;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.http.HttpRequest;
|
|
import org.springframework.http.client.ClientHttpRequestExecution;
|
|
import org.springframework.http.client.ClientHttpRequestInterceptor;
|
|
import org.springframework.http.client.ClientHttpResponse;
|
|
|
|
/**
|
|
* Created by ikalyvas on 2/25/2019.
|
|
*/
|
|
public class CircuitBreakerHttpClientInterceptor implements ClientHttpRequestInterceptor {
|
|
|
|
private CircuitBreaker circuitBreaker;
|
|
|
|
@Autowired
|
|
public CircuitBreakerHttpClientInterceptor(CircuitBreaker circuitBreaker) {
|
|
this.circuitBreaker = circuitBreaker;
|
|
}
|
|
|
|
@Override
|
|
public ClientHttpResponse intercept(HttpRequest request, byte[] body, ClientHttpRequestExecution execution) {
|
|
System.out.println(request);
|
|
return this.circuitBreaker.handle(request, () -> execution.execute(request, body));
|
|
}
|
|
}
|