Adds CircuitBreakerFilterFunctions.CircuitBreakerConfig.setFallbackUri()
This commit is contained in:
@@ -18,6 +18,7 @@ package org.springframework.cloud.gateway.server.mvc.filter;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.lang.reflect.Method;
|
||||
import java.net.URI;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import java.util.HashSet;
|
||||
@@ -36,6 +37,7 @@ import org.springframework.cloud.gateway.server.mvc.common.Shortcut;
|
||||
import org.springframework.cloud.gateway.server.mvc.handler.GatewayServerResponse;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.HttpStatusCode;
|
||||
import org.springframework.util.Assert;
|
||||
import org.springframework.util.StringUtils;
|
||||
import org.springframework.web.server.ResponseStatusException;
|
||||
import org.springframework.web.servlet.function.HandlerFilterFunction;
|
||||
@@ -51,6 +53,10 @@ public abstract class CircuitBreakerFilterFunctions {
|
||||
return circuitBreaker(config -> config.setId(id));
|
||||
}
|
||||
|
||||
public static HandlerFilterFunction<ServerResponse, ServerResponse> circuitBreaker(String id, URI fallbackUri) {
|
||||
return circuitBreaker(config -> config.setId(id).setFallbackUri(fallbackUri));
|
||||
}
|
||||
|
||||
public static HandlerFilterFunction<ServerResponse, ServerResponse> circuitBreaker(String id, String fallbackPath) {
|
||||
return circuitBreaker(config -> config.setId(id).setFallbackPath(fallbackPath));
|
||||
}
|
||||
@@ -138,6 +144,22 @@ public abstract class CircuitBreakerFilterFunctions {
|
||||
return fallbackPath;
|
||||
}
|
||||
|
||||
public CircuitBreakerConfig setFallbackUri(String fallbackUri) {
|
||||
Assert.notNull(fallbackUri, "fallbackUri String may not be null");
|
||||
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());
|
||||
fallbackPath = fallbackUri.getPath();
|
||||
}
|
||||
else {
|
||||
fallbackPath = null;
|
||||
}
|
||||
return this;
|
||||
}
|
||||
|
||||
public CircuitBreakerConfig setFallbackPath(String fallbackPath) {
|
||||
this.fallbackPath = fallbackPath;
|
||||
return this;
|
||||
|
||||
Reference in New Issue
Block a user