Moves enabled filter out of GatewayProperties

Since GatewayProperties is just a holder, I moved the business logic of filtering to PropertiesRouteDefinitionLocator

See gh-3026
This commit is contained in:
spencergibb
2024-09-27 13:15:39 -04:00
parent d81e7ae784
commit 28a7da86ce
3 changed files with 11 additions and 9 deletions

View File

@@ -69,7 +69,7 @@ public class GatewayProperties {
private boolean failOnRouteDefinitionError = true;
public List<RouteDefinition> getRoutes() {
return routes.stream().filter(RouteDefinition::isEnabled).toList();
return routes;
}
public void setRoutes(List<RouteDefinition> routes) {

View File

@@ -34,7 +34,7 @@ public class PropertiesRouteDefinitionLocator implements RouteDefinitionLocator
@Override
public Flux<RouteDefinition> getRouteDefinitions() {
return Flux.fromIterable(this.properties.getRoutes());
return Flux.fromIterable(this.properties.getRoutes()).filter(RouteDefinition::isEnabled);
}
}

View File

@@ -39,7 +39,6 @@ import org.springframework.cloud.gateway.filter.headers.ForwardedHeadersFilter;
import org.springframework.cloud.gateway.filter.headers.XForwardedHeadersFilter;
import org.springframework.cloud.gateway.handler.RoutePredicateHandlerMapping;
import org.springframework.cloud.gateway.route.CachingRouteLocator;
import org.springframework.cloud.gateway.route.Route;
import org.springframework.cloud.gateway.route.RouteDefinition;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationListener;
@@ -84,12 +83,15 @@ class GatewayIntegrationTests extends BaseWebClientTests {
}
@Test
void checkDisabledFilterNotPresent() {
Optional<RouteDefinition> disabledRoute = properties.getRoutes().stream()
.filter(r -> "disabled_config_test".equals(r.getId()))
.findFirst();
assertThat(disabledRoute).as("Disabled route is not present")
.isEmpty();
void checkFilterIsDisabled() {
Optional<RouteDefinition> disabledRoute = properties.getRoutes()
.stream()
.filter(r -> "disabled_config_test".equals(r.getId()))
.findFirst();
assertThat(disabledRoute).as("Disabled route is present")
.isPresent()
.get()
.hasFieldOrPropertyWithValue("enabled", false);
}
@Test