diff --git a/spring-cloud-gateway-core/pom.xml b/spring-cloud-gateway-core/pom.xml
index 64163a1c..39232497 100644
--- a/spring-cloud-gateway-core/pom.xml
+++ b/spring-cloud-gateway-core/pom.xml
@@ -37,7 +37,7 @@
spring-boot-configuration-processor
true
-
+
io.reactivex
@@ -62,11 +62,11 @@
org.springframework
spring-tuple
-
+
org.springframework.boot
spring-boot-starter-test
diff --git a/spring-cloud-gateway-core/src/main/java/org/springframework/cloud/gateway/config/GatewayAutoConfiguration.java b/spring-cloud-gateway-core/src/main/java/org/springframework/cloud/gateway/config/GatewayAutoConfiguration.java
index 73f15ae7..8018978c 100644
--- a/spring-cloud-gateway-core/src/main/java/org/springframework/cloud/gateway/config/GatewayAutoConfiguration.java
+++ b/spring-cloud-gateway-core/src/main/java/org/springframework/cloud/gateway/config/GatewayAutoConfiguration.java
@@ -20,20 +20,19 @@ package org.springframework.cloud.gateway.config;
import java.util.List;
import org.springframework.boot.actuate.endpoint.Endpoint;
+import org.springframework.boot.autoconfigure.AutoConfigureAfter;
import org.springframework.boot.autoconfigure.AutoConfigureBefore;
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.autoconfigure.web.reactive.HttpHandlerAutoConfiguration;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
-// import org.springframework.cloud.client.loadbalancer.LoadBalancerClient;
import org.springframework.cloud.gateway.actuate.GatewayEndpoint;
import org.springframework.cloud.gateway.api.RouteDefinitionLocator;
import org.springframework.cloud.gateway.api.RouteDefinitionRepository;
import org.springframework.cloud.gateway.api.RouteDefinitionWriter;
import org.springframework.cloud.gateway.api.RouteLocator;
import org.springframework.cloud.gateway.filter.GlobalFilter;
-import org.springframework.cloud.gateway.filter.LoadBalancerClientFilter;
import org.springframework.cloud.gateway.filter.NettyRoutingFilter;
import org.springframework.cloud.gateway.filter.RouteToRequestUrlFilter;
import org.springframework.cloud.gateway.filter.WriteResponseFilter;
@@ -47,12 +46,12 @@ import org.springframework.cloud.gateway.filter.factory.RemoveNonProxyHeadersWeb
import org.springframework.cloud.gateway.filter.factory.RemoveRequestHeaderWebFilterFactory;
import org.springframework.cloud.gateway.filter.factory.RemoveResponseHeaderWebFilterFactory;
import org.springframework.cloud.gateway.filter.factory.RewritePathWebFilterFactory;
-import org.springframework.cloud.gateway.filter.factory.SecureHeadersWebFilterFactory;
-import org.springframework.cloud.gateway.filter.factory.SetResponseHeaderWebFilterFactory;
-import org.springframework.cloud.gateway.filter.factory.WebFilterFactory;
import org.springframework.cloud.gateway.filter.factory.SecureHeadersProperties;
+import org.springframework.cloud.gateway.filter.factory.SecureHeadersWebFilterFactory;
import org.springframework.cloud.gateway.filter.factory.SetPathWebFilterFactory;
+import org.springframework.cloud.gateway.filter.factory.SetResponseHeaderWebFilterFactory;
import org.springframework.cloud.gateway.filter.factory.SetStatusWebFilterFactory;
+import org.springframework.cloud.gateway.filter.factory.WebFilterFactory;
import org.springframework.cloud.gateway.handler.FilteringWebHandler;
import org.springframework.cloud.gateway.handler.NettyRoutingWebHandler;
import org.springframework.cloud.gateway.handler.RequestPredicateHandlerMapping;
@@ -70,14 +69,14 @@ import org.springframework.cloud.gateway.handler.predicate.RequestPredicateFacto
import org.springframework.cloud.gateway.support.CachingRouteLocator;
import org.springframework.cloud.gateway.support.CompositeRouteDefinitionLocator;
import org.springframework.cloud.gateway.support.CompositeRouteLocator;
-import org.springframework.cloud.gateway.support.RouteDefinitionRouteLocator;
import org.springframework.cloud.gateway.support.InMemoryRouteDefinitionRepository;
+import org.springframework.cloud.gateway.support.RouteDefinitionRouteLocator;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
-
-// import com.netflix.hystrix.HystrixObservableCommand;
-
import org.springframework.context.annotation.Primary;
+
+import com.netflix.hystrix.HystrixObservableCommand;
+
import reactor.core.publisher.Flux;
import reactor.ipc.netty.http.client.HttpClient;
import rx.RxReactiveStreams;
@@ -89,6 +88,7 @@ import rx.RxReactiveStreams;
@ConditionalOnBean(GatewayConfiguration.Marker.class)
@EnableConfigurationProperties
@AutoConfigureBefore(HttpHandlerAutoConfiguration.class)
+@AutoConfigureAfter(GatewayLoadBalancerClientAutoConfiguration.class)
public class GatewayAutoConfiguration {
@Configuration
@@ -173,16 +173,6 @@ public class GatewayAutoConfiguration {
// GlobalFilter beans
- /*@ConditionalOnClass(LoadBalancerClient.class)
- @Configuration
- protected static class LoadBalancerClientConfiguration {
- @Bean
- @ConditionalOnBean(LoadBalancerClient.class)
- public LoadBalancerClientFilter loadBalancerClientFilter(LoadBalancerClient client) {
- return new LoadBalancerClientFilter(client);
- }
- }*/
-
@Bean
public RouteToRequestUrlFilter routeToRequestUrlFilter() {
return new RouteToRequestUrlFilter();
@@ -261,7 +251,7 @@ public class GatewayAutoConfiguration {
public AddResponseHeaderWebFilterFactory addResponseHeaderWebFilterFactory() {
return new AddResponseHeaderWebFilterFactory();
}
-/* TODO: add it back when s-c-netflix is up to date
+
@Configuration
@ConditionalOnClass({HystrixObservableCommand.class, RxReactiveStreams.class})
protected static class HystrixConfiguration {
@@ -269,7 +259,7 @@ public class GatewayAutoConfiguration {
public HystrixWebFilterFactory hystrixWebFilterFactory() {
return new HystrixWebFilterFactory();
}
- }*/
+ }
@Bean
public PrefixPathWebFilterFactory prefixPathWebFilterFactory() {
diff --git a/spring-cloud-gateway-core/src/main/java/org/springframework/cloud/gateway/config/GatewayLoadBalancerClientAutoConfiguration.java b/spring-cloud-gateway-core/src/main/java/org/springframework/cloud/gateway/config/GatewayLoadBalancerClientAutoConfiguration.java
new file mode 100644
index 00000000..c7043424
--- /dev/null
+++ b/spring-cloud-gateway-core/src/main/java/org/springframework/cloud/gateway/config/GatewayLoadBalancerClientAutoConfiguration.java
@@ -0,0 +1,45 @@
+/*
+ * Copyright 2013-2017 the original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+package org.springframework.cloud.gateway.config;
+
+import org.springframework.boot.autoconfigure.AutoConfigureAfter;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.cloud.client.loadbalancer.LoadBalancerClient;
+import org.springframework.cloud.gateway.filter.LoadBalancerClientFilter;
+import org.springframework.cloud.netflix.ribbon.RibbonAutoConfiguration;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * @author Spencer Gibb
+ */
+@Configuration
+@ConditionalOnClass({LoadBalancerClient.class, RibbonAutoConfiguration.class})
+@ConditionalOnBean(GatewayConfiguration.Marker.class)
+@AutoConfigureAfter(RibbonAutoConfiguration.class)
+public class GatewayLoadBalancerClientAutoConfiguration {
+
+ // GlobalFilter beans
+
+ @Bean
+ @ConditionalOnBean(LoadBalancerClient.class)
+ public LoadBalancerClientFilter loadBalancerClientFilter(LoadBalancerClient client) {
+ return new LoadBalancerClientFilter(client);
+ }
+}
diff --git a/spring-cloud-gateway-core/src/main/java/org/springframework/cloud/gateway/discovery/DiscoveryClientRouteDefinitionLocator.java b/spring-cloud-gateway-core/src/main/java/org/springframework/cloud/gateway/discovery/DiscoveryClientRouteDefinitionLocator.java
index 42ba8d2c..cf1211ed 100644
--- a/spring-cloud-gateway-core/src/main/java/org/springframework/cloud/gateway/discovery/DiscoveryClientRouteDefinitionLocator.java
+++ b/spring-cloud-gateway-core/src/main/java/org/springframework/cloud/gateway/discovery/DiscoveryClientRouteDefinitionLocator.java
@@ -19,7 +19,7 @@ package org.springframework.cloud.gateway.discovery;
import java.net.URI;
-// import org.springframework.cloud.client.discovery.DiscoveryClient;
+import org.springframework.cloud.client.discovery.DiscoveryClient;
import org.springframework.cloud.gateway.api.RouteDefinitionLocator;
import org.springframework.cloud.gateway.filter.factory.RewritePathWebFilterFactory;
import org.springframework.cloud.gateway.handler.predicate.PathRequestPredicateFactory;
@@ -39,7 +39,7 @@ import reactor.core.publisher.Flux;
* TODO: developer configuration, in zuul, this was opt out, should be opt in
* @author Spencer Gibb
*/
-public class DiscoveryClientRouteDefinitionLocator {}/*implements RouteDefinitionLocator {
+public class DiscoveryClientRouteDefinitionLocator implements RouteDefinitionLocator {
private final DiscoveryClient discoveryClient;
private final String routeIdPrefix;
@@ -57,50 +57,10 @@ public class DiscoveryClientRouteDefinitionLocator {}/*implements RouteDefinitio
routeDefinition.setId(this.routeIdPrefix + serviceId);
routeDefinition.setUri(URI.create("lb://" + serviceId));
- // add a predicate that matches the url at /serviceId*//**
- PredicateDefinition predicate = new PredicateDefinition();
- predicate.setName(normalizePredicateName(PathRequestPredicateFactory.class));
- predicate.addArg(PATTERN_KEY, "/" + serviceId + "*//**");
- routeDefinition.getPredicates().add(predicate);
-
- //TODO: support for other default predicates
-
- // add a filter that removes /serviceId by default
- FilterDefinition filter = new FilterDefinition();
- filter.setName(normalizeFilterName(RewritePathWebFilterFactory.class));
- String regex = "/" + serviceId + "/(?.*)";
- String replacement = "/${remaining}";
- filter.addArg(REGEXP_KEY, regex);
- filter.addArg(REPLACEMENT_KEY, replacement);
- routeDefinition.getFilters().add(filter);
-
- //TODO: support for default filters
-
- return routeDefinition;
- });
- }
- }*/ /*implements RouteDefinitionLocator {
-
- private final DiscoveryClient discoveryClient;
- private final String routeIdPrefix;
-
- public DiscoveryClientRouteDefinitionLocator(DiscoveryClient discoveryClient) {
- this.discoveryClient = discoveryClient;
- this.routeIdPrefix = this.discoveryClient.getClass().getSimpleName() + "_";
- }
-
- @Override
- public Flux getRouteDefinitions() {
- return Flux.fromIterable(discoveryClient.getServices())
- .map(serviceId -> {
- RouteDefinition routeDefinition = new RouteDefinition();
- routeDefinition.setId(this.routeIdPrefix + serviceId);
- routeDefinition.setUri(URI.create("lb://" + serviceId));
-
- // add a predicate that matches the url at /serviceId*//**
+ // add a predicate that matches the url at /serviceId*
PredicateDefinition predicate = new PredicateDefinition();
predicate.setName(normalizePredicateName(PathRequestPredicateFactory.class));
- predicate.addArg(PATTERN_KEY, "/" + serviceId + "*//**");
+ predicate.addArg(PATTERN_KEY, "/" + serviceId + "*");
routeDefinition.getPredicates().add(predicate);
//TODO: support for other default predicates
@@ -119,4 +79,4 @@ public class DiscoveryClientRouteDefinitionLocator {}/*implements RouteDefinitio
return routeDefinition;
});
}
-}*/
+}
diff --git a/spring-cloud-gateway-core/src/main/java/org/springframework/cloud/gateway/filter/LoadBalancerClientFilter.java b/spring-cloud-gateway-core/src/main/java/org/springframework/cloud/gateway/filter/LoadBalancerClientFilter.java
index bdad0997..d6f6c7ea 100644
--- a/spring-cloud-gateway-core/src/main/java/org/springframework/cloud/gateway/filter/LoadBalancerClientFilter.java
+++ b/spring-cloud-gateway-core/src/main/java/org/springframework/cloud/gateway/filter/LoadBalancerClientFilter.java
@@ -21,8 +21,8 @@ import java.net.URI;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-// import org.springframework.cloud.client.ServiceInstance;
-// import org.springframework.cloud.client.loadbalancer.LoadBalancerClient;
+import org.springframework.cloud.client.ServiceInstance;
+import org.springframework.cloud.client.loadbalancer.LoadBalancerClient;
import org.springframework.cloud.gateway.support.NotFoundException;
import org.springframework.core.Ordered;
import org.springframework.web.server.ServerWebExchange;
@@ -42,11 +42,11 @@ public class LoadBalancerClientFilter implements GlobalFilter, Ordered {
private static final Log log = LogFactory.getLog(LoadBalancerClientFilter.class);
public static final int LOAD_BALANCER_CLIENT_FILTER_ORDER = 10100;
- /*private final LoadBalancerClient loadBalancer;
+ private final LoadBalancerClient loadBalancer;
public LoadBalancerClientFilter(LoadBalancerClient loadBalancer) {
this.loadBalancer = loadBalancer;
- }*/
+ }
@Override
public int getOrder() {
@@ -55,7 +55,7 @@ public class LoadBalancerClientFilter implements GlobalFilter, Ordered {
@Override
public Mono filter(ServerWebExchange exchange, WebFilterChain chain) {
- /*URI url = getAttribute(exchange, GATEWAY_REQUEST_URL_ATTR, URI.class);
+ URI url = getAttribute(exchange, GATEWAY_REQUEST_URL_ATTR, URI.class);
if (url == null || !url.getScheme().equals("lb")) {
return chain.filter(exchange);
}
@@ -74,7 +74,7 @@ public class LoadBalancerClientFilter implements GlobalFilter, Ordered {
.build(true)
.toUri();
log.trace("LoadBalancerClientFilter url chosen: " + requestUrl);
- exchange.getAttributes().put(GATEWAY_REQUEST_URL_ATTR, requestUrl);*/
+ exchange.getAttributes().put(GATEWAY_REQUEST_URL_ATTR, requestUrl);
return chain.filter(exchange);
}
diff --git a/spring-cloud-gateway-core/src/main/java/org/springframework/cloud/gateway/filter/factory/HystrixWebFilterFactory.java b/spring-cloud-gateway-core/src/main/java/org/springframework/cloud/gateway/filter/factory/HystrixWebFilterFactory.java
index b4fa4439..01f3ffa5 100644
--- a/spring-cloud-gateway-core/src/main/java/org/springframework/cloud/gateway/filter/factory/HystrixWebFilterFactory.java
+++ b/spring-cloud-gateway-core/src/main/java/org/springframework/cloud/gateway/filter/factory/HystrixWebFilterFactory.java
@@ -22,14 +22,14 @@ import org.springframework.web.server.ServerWebExchange;
import org.springframework.web.server.WebFilter;
import org.springframework.web.server.WebFilterChain;
-// import com.netflix.hystrix.HystrixCommandGroupKey;
-// import com.netflix.hystrix.HystrixCommandKey;
-// import com.netflix.hystrix.HystrixObservableCommand;
+import com.netflix.hystrix.HystrixCommandGroupKey;
+import com.netflix.hystrix.HystrixCommandKey;
+import com.netflix.hystrix.HystrixObservableCommand;
import reactor.core.publisher.Mono;
-// import rx.Observable;
+import rx.Observable;
import rx.RxReactiveStreams;
-// import rx.Subscription;
+import rx.Subscription;
import java.util.Arrays;
import java.util.List;
@@ -37,7 +37,7 @@ import java.util.List;
/**
* @author Spencer Gibb
*/
-public class HystrixWebFilterFactory {}/*implements WebFilterFactory {
+public class HystrixWebFilterFactory implements WebFilterFactory {
@Override
public List argNames() {
@@ -46,6 +46,7 @@ public class HystrixWebFilterFactory {}/*implements WebFilterFactory {
@Override
public WebFilter apply(Tuple args) {
+ //TODO: if no name is supplied, generate one from command id (useful for default filter)
final String commandName = args.getString(NAME_KEY);
final HystrixCommandGroupKey groupKey = HystrixCommandGroupKey.Factory.asKey(getClass().getSimpleName());
final HystrixCommandKey commandKey = HystrixCommandKey.Factory.asKey(commandName);
@@ -80,4 +81,4 @@ public class HystrixWebFilterFactory {}/*implements WebFilterFactory {
return RxReactiveStreams.toObservable(this.chain.filter(this.exchange));
}
}
-}*/
+}
diff --git a/spring-cloud-gateway-core/src/main/resources/META-INF/spring.factories b/spring-cloud-gateway-core/src/main/resources/META-INF/spring.factories
index 8de7fa66..1d13cae7 100644
--- a/spring-cloud-gateway-core/src/main/resources/META-INF/spring.factories
+++ b/spring-cloud-gateway-core/src/main/resources/META-INF/spring.factories
@@ -1,3 +1,4 @@
# Auto Configure
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
-org.springframework.cloud.gateway.config.GatewayAutoConfiguration
+org.springframework.cloud.gateway.config.GatewayAutoConfiguration,\
+org.springframework.cloud.gateway.config.GatewayLoadBalancerClientAutoConfiguration
diff --git a/spring-cloud-gateway-core/src/test/java/org/springframework/cloud/gateway/filter/factory/AddRequestHeaderWebFilterFactoryTests.java b/spring-cloud-gateway-core/src/test/java/org/springframework/cloud/gateway/filter/factory/AddRequestHeaderWebFilterFactoryTests.java
index 34e2b31d..ebf1bb81 100644
--- a/spring-cloud-gateway-core/src/test/java/org/springframework/cloud/gateway/filter/factory/AddRequestHeaderWebFilterFactoryTests.java
+++ b/spring-cloud-gateway-core/src/test/java/org/springframework/cloud/gateway/filter/factory/AddRequestHeaderWebFilterFactoryTests.java
@@ -17,6 +17,7 @@
package org.springframework.cloud.gateway.filter.factory;
+import java.time.Duration;
import java.util.Map;
import org.junit.Test;
@@ -57,7 +58,7 @@ public class AddRequestHeaderWebFilterFactoryTests extends BaseWebClientTests {
assertThat(headers).containsEntry("X-Request-Foo", "Bar");
})
.expectComplete()
- .verify(DURATION);
+ .verify(Duration.ofMinutes(10));
}
@EnableAutoConfiguration
diff --git a/spring-cloud-gateway-core/src/test/java/org/springframework/cloud/gateway/filter/factory/HystrixWebFilterFactoryTests.java b/spring-cloud-gateway-core/src/test/java/org/springframework/cloud/gateway/filter/factory/HystrixWebFilterFactoryTests.java
index c4fed47a..57568390 100644
--- a/spring-cloud-gateway-core/src/test/java/org/springframework/cloud/gateway/filter/factory/HystrixWebFilterFactoryTests.java
+++ b/spring-cloud-gateway-core/src/test/java/org/springframework/cloud/gateway/filter/factory/HystrixWebFilterFactoryTests.java
@@ -44,7 +44,7 @@ public class HystrixWebFilterFactoryTests extends BaseWebClientTests {
@Test
public void hystrixFilterWorks() {
- /*Mono result = webClient.get()
+ Mono result = webClient.get()
.uri("/get")
.header("Host", "www.hystrixsuccess.org")
.exchange();
@@ -58,19 +58,19 @@ public class HystrixWebFilterFactoryTests extends BaseWebClientTests {
.isEqualTo("hystrix_success_test");
})
.expectComplete()
- .verify(DURATION);*/
+ .verify(DURATION);
}
@Test
public void hystrixFilterTimesout() {
- /*Mono result = webClient.get()
+ Mono result = webClient.get()
.uri("/delay/3")
.header("Host", "www.hystrixfailure.org")
.exchange();
StepVerifier.create(result)
.expectError() //TODO: can we get more specific as to the error?
- .verify();*/
+ .verify();
}
@EnableAutoConfiguration
diff --git a/spring-cloud-gateway-core/src/test/java/org/springframework/cloud/gateway/filter/factory/RemoveNonProxyHeadersWebFilterFactoryTests.java b/spring-cloud-gateway-core/src/test/java/org/springframework/cloud/gateway/filter/factory/RemoveNonProxyHeadersWebFilterFactoryTests.java
index 5ca6d21d..d81b1fce 100644
--- a/spring-cloud-gateway-core/src/test/java/org/springframework/cloud/gateway/filter/factory/RemoveNonProxyHeadersWebFilterFactoryTests.java
+++ b/spring-cloud-gateway-core/src/test/java/org/springframework/cloud/gateway/filter/factory/RemoveNonProxyHeadersWebFilterFactoryTests.java
@@ -24,7 +24,6 @@ import org.junit.runner.RunWith;
import org.springframework.boot.SpringBootConfiguration;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.cloud.gateway.EnableGateway;
import org.springframework.cloud.gateway.test.BaseWebClientTests;
import org.springframework.context.annotation.Import;
import org.springframework.test.annotation.DirtiesContext;
@@ -60,7 +59,7 @@ public class RemoveNonProxyHeadersWebFilterFactoryTests extends BaseWebClientTes
.consumeNextWith(
response -> {
Map headers = getMap(response, "headers");
- // for (String header : DEFAULT_HEADERS_TO_REMOVE) {
+ //FIXME for (String header : DEFAULT_HEADERS_TO_REMOVE) {
assertThat(headers).doesNotContainKey("Proxy-Authorization");
// }
})
diff --git a/spring-cloud-gateway-core/src/test/java/org/springframework/cloud/gateway/test/BaseWebClientTests.java b/spring-cloud-gateway-core/src/test/java/org/springframework/cloud/gateway/test/BaseWebClientTests.java
index 055c9c49..4b72dfaf 100644
--- a/spring-cloud-gateway-core/src/test/java/org/springframework/cloud/gateway/test/BaseWebClientTests.java
+++ b/spring-cloud-gateway-core/src/test/java/org/springframework/cloud/gateway/test/BaseWebClientTests.java
@@ -30,9 +30,9 @@ import org.springframework.boot.web.server.LocalServerPort;
import org.springframework.cloud.gateway.EnableGateway;
import org.springframework.cloud.gateway.filter.GlobalFilter;
import org.springframework.cloud.gateway.model.Route;
-// import org.springframework.cloud.netflix.ribbon.RibbonClient;
-// import org.springframework.cloud.netflix.ribbon.RibbonClients;
-// import org.springframework.cloud.netflix.ribbon.StaticServerList;
+import org.springframework.cloud.netflix.ribbon.RibbonClient;
+import org.springframework.cloud.netflix.ribbon.RibbonClients;
+import org.springframework.cloud.netflix.ribbon.StaticServerList;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.annotation.Order;
@@ -43,8 +43,8 @@ import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.reactive.function.client.WebClient;
import org.springframework.web.server.ServerWebExchange;
-// import com.netflix.loadbalancer.Server;
-// import com.netflix.loadbalancer.ServerList;
+import com.netflix.loadbalancer.Server;
+import com.netflix.loadbalancer.ServerList;
import static org.springframework.cloud.gateway.support.ServerWebExchangeUtils.GATEWAY_HANDLER_MAPPER_ATTR;
import static org.springframework.cloud.gateway.support.ServerWebExchangeUtils.GATEWAY_ROUTE_ATTR;
@@ -77,10 +77,10 @@ public class BaseWebClientTests {
@RestController
@RequestMapping("/httpbin")
@Configuration
- /*@RibbonClients({
+ @RibbonClients({
@RibbonClient(name = "testservice", configuration = TestRibbonConfig.class),
@RibbonClient(name = "myservice", configuration = TestRibbonConfig.class)
- })*/
+ })
@EnableGateway
protected static class DefaultTestConfig {
@@ -177,10 +177,10 @@ public class BaseWebClientTests {
@LocalServerPort
protected int port = 0;
- /*@Bean
+ @Bean
public ServerList ribbonServerList() {
return new StaticServerList<>(new Server("localhost", this.port));
- }*/
+ }
}
}
diff --git a/spring-cloud-gateway-core/src/test/java/org/springframework/cloud/gateway/test/GatewayIntegrationTests.java b/spring-cloud-gateway-core/src/test/java/org/springframework/cloud/gateway/test/GatewayIntegrationTests.java
index 1d894794..e50b94a5 100644
--- a/spring-cloud-gateway-core/src/test/java/org/springframework/cloud/gateway/test/GatewayIntegrationTests.java
+++ b/spring-cloud-gateway-core/src/test/java/org/springframework/cloud/gateway/test/GatewayIntegrationTests.java
@@ -21,7 +21,6 @@ import java.util.Map;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
@@ -126,7 +125,6 @@ public class GatewayIntegrationTests extends BaseWebClientTests {
}
@Test
- @Ignore
public void loadBalancerFilterWorks() {
Mono result = webClient.get()
.uri("/get")
@@ -146,7 +144,6 @@ public class GatewayIntegrationTests extends BaseWebClientTests {
}
@Test
- @Ignore
public void postWorks() {
Mono