diff --git a/spring-cloud-function-gateway/pom.xml b/spring-cloud-function-gateway/pom.xml index 45f20ade0..c412ec863 100644 --- a/spring-cloud-function-gateway/pom.xml +++ b/spring-cloud-function-gateway/pom.xml @@ -6,7 +6,7 @@ spring-cloud-function-gateway jar spring-cloud-function-gateway - Spring Cloud Function Web Support + Spring Cloud Function Gateway Support org.springframework.cloud @@ -14,10 +14,6 @@ 1.0.0.BUILD-SNAPSHOT - - 1.0.0.BUILD-SNAPSHOT - - org.springframework.boot diff --git a/spring-cloud-function-gateway/src/main/java/org/springframework/cloud/function/gateway/ProxyExchange.java b/spring-cloud-function-gateway/src/main/java/org/springframework/cloud/function/gateway/ProxyExchange.java index a132706df..7c9cb8823 100644 --- a/spring-cloud-function-gateway/src/main/java/org/springframework/cloud/function/gateway/ProxyExchange.java +++ b/spring-cloud-function-gateway/src/main/java/org/springframework/cloud/function/gateway/ProxyExchange.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2015 the original author or authors. + * Copyright 2016-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. diff --git a/spring-cloud-function-gateway/src/main/java/org/springframework/cloud/function/gateway/config/ProxyResponseAutoConfiguration.java b/spring-cloud-function-gateway/src/main/java/org/springframework/cloud/function/gateway/config/ProxyResponseAutoConfiguration.java index 2e3c7f477..c02c68e93 100644 --- a/spring-cloud-function-gateway/src/main/java/org/springframework/cloud/function/gateway/config/ProxyResponseAutoConfiguration.java +++ b/spring-cloud-function-gateway/src/main/java/org/springframework/cloud/function/gateway/config/ProxyResponseAutoConfiguration.java @@ -18,6 +18,7 @@ package org.springframework.cloud.function.gateway.config; import java.io.IOException; import java.util.List; +import java.util.Optional; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; @@ -49,39 +50,40 @@ import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter @EnableConfigurationProperties(ProxyProperties.class) public class ProxyResponseAutoConfiguration extends WebMvcConfigurerAdapter { - @Autowired - private ApplicationContext context; + @Autowired + private ApplicationContext context; - @Bean - @ConditionalOnMissingBean - public ProxyExchangeArgumentResolver proxyExchangeBuilderArgumentResolver( - RestTemplateBuilder builder, ProxyProperties proxy) { - RestTemplate template = builder.build(); - template.setErrorHandler(new NoOpResponseErrorHandler()); - template.getMessageConverters().add(new ByteArrayHttpMessageConverter() { - @Override - public boolean supports(Class clazz) { - return true; - } - }); - ProxyExchangeArgumentResolver resolver = new ProxyExchangeArgumentResolver( - template); - resolver.setHeaders(proxy.convertHeaders()); - resolver.setSensitive(proxy.getSensitive()); // can be null - return resolver; - } + @Bean + @ConditionalOnMissingBean + public ProxyExchangeArgumentResolver proxyExchangeBuilderArgumentResolver( + Optional optional, ProxyProperties proxy) { + RestTemplateBuilder builder = optional.orElse(new RestTemplateBuilder()); + RestTemplate template = builder.build(); + template.setErrorHandler(new NoOpResponseErrorHandler()); + template.getMessageConverters().add(new ByteArrayHttpMessageConverter() { + @Override + public boolean supports(Class clazz) { + return true; + } + }); + ProxyExchangeArgumentResolver resolver = new ProxyExchangeArgumentResolver( + template); + resolver.setHeaders(proxy.convertHeaders()); + resolver.setSensitive(proxy.getSensitive()); // can be null + return resolver; + } - @Override - public void addArgumentResolvers( - List argumentResolvers) { - argumentResolvers.add(context.getBean(ProxyExchangeArgumentResolver.class)); - } + @Override + public void addArgumentResolvers( + List argumentResolvers) { + argumentResolvers.add(context.getBean(ProxyExchangeArgumentResolver.class)); + } - private static class NoOpResponseErrorHandler extends DefaultResponseErrorHandler { + private static class NoOpResponseErrorHandler extends DefaultResponseErrorHandler { - @Override - public void handleError(ClientHttpResponse response) throws IOException { - } + @Override + public void handleError(ClientHttpResponse response) throws IOException { + } - } + } }