Browse Source

Renames Config classes for easier static import.

Renames CircuitBreakerFilterFunctions.Config to CircuitBreakerFilterFunctions.CircuitBreakerConfig.

Renames RetryFilterFunctions.Config to RetryFilterFunctions.RetryConfig

See gh-2949
pull/3006/head
sgibb 1 year ago
parent
commit
b7dd4e5608
No known key found for this signature in database
GPG Key ID: 7788A47380690861
  1. 18
      spring-cloud-gateway-server-mvc/src/main/java/org/springframework/cloud/gateway/server/mvc/filter/CircuitBreakerFilterFunctions.java
  2. 28
      spring-cloud-gateway-server-mvc/src/main/java/org/springframework/cloud/gateway/server/mvc/filter/RetryFilterFunctions.java

18
spring-cloud-gateway-server-mvc/src/main/java/org/springframework/cloud/gateway/server/mvc/filter/CircuitBreakerFilterFunctions.java

@ -55,10 +55,12 @@ public abstract class CircuitBreakerFilterFunctions { @@ -55,10 +55,12 @@ public abstract class CircuitBreakerFilterFunctions {
return circuitBreaker(config -> config.setId(id).setFallbackPath(fallbackPath));
}
public static HandlerFilterFunction<ServerResponse, ServerResponse> circuitBreaker(Consumer<Config> configConsumer) {
Config config = new Config();
public static HandlerFilterFunction<ServerResponse, ServerResponse> circuitBreaker(
Consumer<CircuitBreakerConfig> configConsumer) {
CircuitBreakerConfig config = new CircuitBreakerConfig();
configConsumer.accept(config);
Set<HttpStatusCode> failureStatuses = config.getStatusCodes().stream().map(status -> HttpStatusHolder.valueOf(status).resolve()).collect(Collectors.toSet());
Set<HttpStatusCode> failureStatuses = config.getStatusCodes().stream()
.map(status -> HttpStatusHolder.valueOf(status).resolve()).collect(Collectors.toSet());
return (request, next) -> {
CircuitBreakerFactory<?, ?> circuitBreakerFactory = MvcUtils.getApplicationContext(request)
.getBean(CircuitBreakerFactory.class);
@ -109,7 +111,8 @@ public abstract class CircuitBreakerFilterFunctions { @@ -109,7 +111,8 @@ public abstract class CircuitBreakerFilterFunctions {
};
}
public static class Config {
public static class CircuitBreakerConfig {
private String id;
private String fallbackPath;
@ -120,7 +123,7 @@ public abstract class CircuitBreakerFilterFunctions { @@ -120,7 +123,7 @@ public abstract class CircuitBreakerFilterFunctions {
return id;
}
public Config setId(String id) {
public CircuitBreakerConfig setId(String id) {
this.id = id;
return this;
}
@ -129,7 +132,7 @@ public abstract class CircuitBreakerFilterFunctions { @@ -129,7 +132,7 @@ public abstract class CircuitBreakerFilterFunctions {
return fallbackPath;
}
public Config setFallbackPath(String fallbackPath) {
public CircuitBreakerConfig setFallbackPath(String fallbackPath) {
this.fallbackPath = fallbackPath;
return this;
}
@ -138,10 +141,11 @@ public abstract class CircuitBreakerFilterFunctions { @@ -138,10 +141,11 @@ public abstract class CircuitBreakerFilterFunctions {
return statusCodes;
}
public Config setStatusCodes(Set<String> statusCodes) {
public CircuitBreakerConfig setStatusCodes(Set<String> statusCodes) {
this.statusCodes = statusCodes;
return this;
}
}
public static class CircuitBreakerStatusCodeException extends ResponseStatusException {

28
spring-cloud-gateway-server-mvc/src/main/java/org/springframework/cloud/gateway/server/mvc/filter/RetryFilterFunctions.java

@ -17,7 +17,6 @@ @@ -17,7 +17,6 @@
package org.springframework.cloud.gateway.server.mvc.filter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.HashSet;
@ -50,8 +49,8 @@ public abstract class RetryFilterFunctions { @@ -50,8 +49,8 @@ public abstract class RetryFilterFunctions {
return retry(config -> config.setRetries(retries));
}
public static HandlerFilterFunction<ServerResponse, ServerResponse> retry(Consumer<Config> configConsumer) {
Config config = new Config();
public static HandlerFilterFunction<ServerResponse, ServerResponse> retry(Consumer<RetryConfig> configConsumer) {
RetryConfig config = new RetryConfig();
configConsumer.accept(config);
RetryTemplateBuilder retryTemplateBuilder = RetryTemplate.builder();
return (request, next) -> {
@ -73,7 +72,7 @@ public abstract class RetryFilterFunctions { @@ -73,7 +72,7 @@ public abstract class RetryFilterFunctions {
};
}
private static boolean isRetryableStatusCode(HttpStatusCode httpStatus, Config config) {
private static boolean isRetryableStatusCode(HttpStatusCode httpStatus, RetryConfig config) {
Optional<HttpStatus.Series> seriesMatches = config.getSeries().stream()
.filter(series -> HttpStatus.Series.resolve(httpStatus.value()) == series).findFirst();
return seriesMatches.isPresent();
@ -81,9 +80,9 @@ public abstract class RetryFilterFunctions { @@ -81,9 +80,9 @@ public abstract class RetryFilterFunctions {
public static class HttpStatusRetryPolicy extends NeverRetryPolicy {
private final Config config;
private final RetryConfig config;
public HttpStatusRetryPolicy(Config config) {
public HttpStatusRetryPolicy(RetryConfig config) {
this.config = config;
}
@ -98,14 +97,14 @@ public abstract class RetryFilterFunctions { @@ -98,14 +97,14 @@ public abstract class RetryFilterFunctions {
}
public static class Config {
public static class RetryConfig {
private int retries = 3;
private Set<HttpStatus.Series> series = new HashSet<>(List.of(HttpStatus.Series.SERVER_ERROR));
private Set<Class<? extends Throwable>> exceptions = new HashSet<>(List.of(IOException.class, TimeoutException.class,
HttpServerErrorException.class));
private Set<Class<? extends Throwable>> exceptions = new HashSet<>(
List.of(IOException.class, TimeoutException.class, HttpServerErrorException.class));
// TODO: individual statuses
// TODO: support more Spring Retry policies
@ -114,7 +113,7 @@ public abstract class RetryFilterFunctions { @@ -114,7 +113,7 @@ public abstract class RetryFilterFunctions {
return retries;
}
public Config setRetries(int retries) {
public RetryConfig setRetries(int retries) {
this.retries = retries;
return this;
}
@ -123,12 +122,12 @@ public abstract class RetryFilterFunctions { @@ -123,12 +122,12 @@ public abstract class RetryFilterFunctions {
return series;
}
public Config setSeries(Set<HttpStatus.Series> series) {
public RetryConfig setSeries(Set<HttpStatus.Series> series) {
this.series = series;
return this;
}
public Config addSeries(HttpStatus.Series... series) {
public RetryConfig addSeries(HttpStatus.Series... series) {
this.series.addAll(Arrays.asList(series));
return this;
}
@ -137,15 +136,16 @@ public abstract class RetryFilterFunctions { @@ -137,15 +136,16 @@ public abstract class RetryFilterFunctions {
return exceptions;
}
public Config setExceptions(Set<Class<? extends Throwable>> exceptions) {
public RetryConfig setExceptions(Set<Class<? extends Throwable>> exceptions) {
this.exceptions = exceptions;
return this;
}
public Config addExceptions(Class<? extends Throwable>... exceptions) {
public RetryConfig addExceptions(Class<? extends Throwable>... exceptions) {
this.exceptions.addAll(Arrays.asList(exceptions));
return this;
}
}
}

Loading…
Cancel
Save