Adds CircuitBreakerFilterFunctions.CircuitBreakerConfig.setStatusCodes(String...)
This commit is contained in:
@@ -22,6 +22,7 @@ import java.net.URI;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import java.util.HashSet;
|
||||
import java.util.LinkedHashSet;
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.TimeoutException;
|
||||
import java.util.function.Consumer;
|
||||
@@ -149,9 +150,11 @@ public abstract class CircuitBreakerFilterFunctions {
|
||||
setFallbackUri(URI.create(fallbackUri));
|
||||
return this;
|
||||
}
|
||||
|
||||
public CircuitBreakerConfig setFallbackUri(URI fallbackUri) {
|
||||
if (fallbackUri != null) {
|
||||
Assert.isTrue(fallbackUri.getScheme().equalsIgnoreCase("forward"), () -> "Scheme must be forward, but is " + fallbackUri.getScheme());
|
||||
Assert.isTrue(fallbackUri.getScheme().equalsIgnoreCase("forward"),
|
||||
() -> "Scheme must be forward, but is " + fallbackUri.getScheme());
|
||||
fallbackPath = fallbackUri.getPath();
|
||||
}
|
||||
else {
|
||||
@@ -169,6 +172,10 @@ public abstract class CircuitBreakerFilterFunctions {
|
||||
return statusCodes;
|
||||
}
|
||||
|
||||
public CircuitBreakerConfig setStatusCodes(String... statusCodes) {
|
||||
return setStatusCodes(new LinkedHashSet<>(Arrays.asList(statusCodes)));
|
||||
}
|
||||
|
||||
public CircuitBreakerConfig setStatusCodes(Set<String> statusCodes) {
|
||||
this.statusCodes = statusCodes;
|
||||
return this;
|
||||
|
||||
@@ -279,8 +279,6 @@ public class ServerMvcIntegrationTests {
|
||||
// @formatter:on
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Test
|
||||
public void retryWorks() {
|
||||
restClient.get().uri("/retry?key=get").exchange().expectStatus().isOk().expectBody(String.class).isEqualTo("3");
|
||||
@@ -776,6 +774,7 @@ public class ServerMvcIntegrationTests {
|
||||
return route(path("/anything/circuitbreakernofallback"), http())
|
||||
.filter(new HttpbinUriResolver())
|
||||
.filter(circuitBreaker("mycb3"))
|
||||
//.filter(circuitBreaker(config -> config.setId("myCircuitBreaker").setFallbackUri("forward:/inCaseOfFailureUseThis").setStatusCodes("500", "NOT_FOUND")))
|
||||
.filter(setPath("/delay/5"))
|
||||
.withAttribute(MvcUtils.GATEWAY_ROUTE_ID_ATTR, "testcircuitbreakernofallback");
|
||||
// @formatter:on
|
||||
|
||||
Reference in New Issue
Block a user