Add better error message to java dsl when Hystrix is missing. (#292)

This commit is contained in:
Andrew Fitzgerald
2018-04-23 13:14:00 -04:00
committed by Spencer Gibb
parent ce76b5c169
commit 6834ce99f2

View File

@@ -23,6 +23,7 @@ import java.util.function.Consumer;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.factory.NoSuchBeanDefinitionException;
import org.springframework.cloud.gateway.filter.GatewayFilter;
import org.springframework.cloud.gateway.filter.OrderedGatewayFilter;
import org.springframework.cloud.gateway.filter.factory.AddRequestHeaderGatewayFilterFactory;
@@ -47,7 +48,6 @@ import org.springframework.cloud.gateway.filter.factory.StripPrefixGatewayFilter
import org.springframework.cloud.gateway.filter.ratelimit.RateLimiter;
import org.springframework.cloud.gateway.route.Route;
import org.springframework.core.Ordered;
import org.springframework.http.HttpMethod;
import org.springframework.http.HttpStatus;
import org.springframework.web.server.ServerWebExchange;
@@ -106,8 +106,14 @@ public class GatewayFilterSpec extends UriSpec {
}
public GatewayFilterSpec hystrix(Consumer<HystrixGatewayFilterFactory.Config> configConsumer) {
return filter(getBean(HystrixGatewayFilterFactory.class)
.apply(configConsumer));
HystrixGatewayFilterFactory factory;
try {
factory = getBean(HystrixGatewayFilterFactory.class);
}
catch (NoSuchBeanDefinitionException e) {
throw new NoSuchBeanDefinitionException(HystrixGatewayFilterFactory.class, "This is probably because Hystrix is missing from the classpath, which can be resolved by adding dependency on 'org.springframework.cloud:spring-cloud-starter-netflix-hystrix'");
}
return filter(factory.apply(configConsumer));
}
public GatewayFilterSpec prefixPath(String prefix) {