Browse Source

Remove deprecations and outdated API usage. (#768)

pull/476/head
Olga Maciaszek-Sharma 2 years ago committed by GitHub
parent
commit
28345b2ad9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 6
      docs/src/main/asciidoc/spring-cloud-openfeign.adoc
  2. 21
      spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/FeignClient.java
  3. 6
      spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/FeignClientBuilder.java
  4. 25
      spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/FeignClientFactoryBean.java
  5. 14
      spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/FeignClientProperties.java
  6. 2
      spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/FeignClientsRegistrar.java
  7. 18
      spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/SpringQueryMap.java
  8. 2
      spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/loadbalancer/LoadBalancerUtils.java
  9. 2
      spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/loadbalancer/RetryableFeignBlockingLoadBalancerClient.java
  10. 21
      spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/support/SpringEncoder.java
  11. 14
      spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/FeignClientBuilderTests.java
  12. 8
      spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/FeignClientConfigurationTests.java
  13. 41
      spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/FeignClientsRegistrarIntegrationTests.java
  14. 4
      spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/SpringDecoderTests.java
  15. 2
      spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/beans/extra/TestClient.java
  16. 10
      spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/test/NoSecurityConfiguration.java
  17. 2
      spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/valid/ValidFeignClientTests.java
  18. 2
      spring-cloud-openfeign-core/src/test/resources/feign-properties.properties

6
docs/src/main/asciidoc/spring-cloud-openfeign.adoc

@ -191,7 +191,7 @@ spring: @@ -191,7 +191,7 @@ spring:
requestInterceptors:
- com.example.FooRequestInterceptor
- com.example.BarRequestInterceptor
decode404: false
dismiss404: false
encoder: com.example.SimpleEncoder
decoder: com.example.SimpleDecoder
contract: com.example.SimpleContract
@ -665,10 +665,6 @@ You can also disable the feature via property `spring.cloud.openfeign.cache.enab @@ -665,10 +665,6 @@ You can also disable the feature via property `spring.cloud.openfeign.cache.enab
=== Feign @QueryMap support
The OpenFeign `@QueryMap` annotation provides support for POJOs to be used as
GET parameter maps. Unfortunately, the default OpenFeign QueryMap annotation is
incompatible with Spring because it lacks a `value` property.
Spring Cloud OpenFeign provides an equivalent `@SpringQueryMap` annotation, which
is used to annotate a POJO or Map parameter as a query parameter map.

21
spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/FeignClient.java

@ -64,27 +64,8 @@ public @interface FeignClient { @@ -64,27 +64,8 @@ public @interface FeignClient {
@AliasFor("value")
String name() default "";
/**
* @return the <code>@Qualifier</code> value for the feign client.
* @deprecated in favour of {@link #qualifiers()}.
*
* If both {@link #qualifier()} and {@link #qualifiers()} are present, we will use the
* latter, unless the array returned by {@link #qualifiers()} is empty or only
* contains <code>null</code> or whitespace values, in which case we'll fall back
* first to {@link #qualifier()} and, if that's also not present, to the default =
* <code>contextId + "FeignClient"</code>.
*/
@Deprecated
String qualifier() default "";
/**
* @return the <code>@Qualifiers</code> value for the feign client.
*
* If both {@link #qualifier()} and {@link #qualifiers()} are present, we will use the
* latter, unless the array returned by {@link #qualifiers()} is empty or only
* contains <code>null</code> or whitespace values, in which case we'll fall back
* first to {@link #qualifier()} and, if that's also not present, to the default =
* <code>contextId + "FeignClient"</code>.
*/
String[] qualifiers() default {};
@ -96,7 +77,7 @@ public @interface FeignClient { @@ -96,7 +77,7 @@ public @interface FeignClient {
/**
* @return whether 404s should be decoded instead of throwing FeignExceptions
*/
boolean decode404() default false;
boolean dismiss404() default false;
/**
* A custom configuration class for the feign client. Can contain override

6
spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/FeignClientBuilder.java

@ -72,7 +72,7 @@ public class FeignClientBuilder { @@ -72,7 +72,7 @@ public class FeignClientBuilder {
this.feignClientFactoryBean.setInheritParentContext(true);
// preset default values - these values resemble the default values on the
// FeignClient annotation
this.url("").path("").decode404(false);
this.url("").path("").dismiss404(false);
}
public Builder<T> url(final String url) {
@ -102,8 +102,8 @@ public class FeignClientBuilder { @@ -102,8 +102,8 @@ public class FeignClientBuilder {
return this;
}
public Builder<T> decode404(final boolean decode404) {
this.feignClientFactoryBean.setDecode404(decode404);
public Builder<T> dismiss404(final boolean dismiss404) {
this.feignClientFactoryBean.setDismiss404(dismiss404);
return this;
}

25
spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/FeignClientFactoryBean.java

@ -91,7 +91,7 @@ public class FeignClientFactoryBean @@ -91,7 +91,7 @@ public class FeignClientFactoryBean
private String path;
private boolean decode404;
private boolean dismiss404;
private boolean inheritParentContext = true;
@ -214,7 +214,7 @@ public class FeignClientFactoryBean @@ -214,7 +214,7 @@ public class FeignClientFactoryBean
if (queryMapEncoder != null) {
builder.queryMapEncoder(queryMapEncoder);
}
if (decode404) {
if (dismiss404) {
builder.dismiss404();
}
ExceptionPropagationPolicy exceptionPropagationPolicy = getInheritedAwareOptional(context,
@ -268,8 +268,8 @@ public class FeignClientFactoryBean @@ -268,8 +268,8 @@ public class FeignClientFactoryBean
}
}
if (config.getDecode404() != null) {
if (config.getDecode404()) {
if (config.getDismiss404() != null) {
if (config.getDismiss404()) {
builder.dismiss404();
}
}
@ -517,12 +517,12 @@ public class FeignClientFactoryBean @@ -517,12 +517,12 @@ public class FeignClientFactoryBean
this.path = path;
}
public boolean isDecode404() {
return decode404;
public boolean isDismiss404() {
return dismiss404;
}
public void setDecode404(boolean decode404) {
this.decode404 = decode404;
public void setDismiss404(boolean dismiss404) {
this.dismiss404 = dismiss404;
}
public boolean isInheritParentContext() {
@ -577,7 +577,7 @@ public class FeignClientFactoryBean @@ -577,7 +577,7 @@ public class FeignClientFactoryBean
}
FeignClientFactoryBean that = (FeignClientFactoryBean) o;
return Objects.equals(applicationContext, that.applicationContext)
&& Objects.equals(beanFactory, that.beanFactory) && decode404 == that.decode404
&& Objects.equals(beanFactory, that.beanFactory) && dismiss404 == that.dismiss404
&& inheritParentContext == that.inheritParentContext && Objects.equals(fallback, that.fallback)
&& Objects.equals(fallbackFactory, that.fallbackFactory) && Objects.equals(name, that.name)
&& Objects.equals(path, that.path) && Objects.equals(type, that.type) && Objects.equals(url, that.url)
@ -589,15 +589,16 @@ public class FeignClientFactoryBean @@ -589,15 +589,16 @@ public class FeignClientFactoryBean
@Override
public int hashCode() {
return Objects.hash(applicationContext, beanFactory, decode404, inheritParentContext, fallback, fallbackFactory,
name, path, type, url, readTimeoutMillis, connectTimeoutMillis, followRedirects, refreshableClient);
return Objects.hash(applicationContext, beanFactory, dismiss404, inheritParentContext, fallback,
fallbackFactory, name, path, type, url, readTimeoutMillis, connectTimeoutMillis, followRedirects,
refreshableClient);
}
@Override
public String toString() {
return new StringBuilder("FeignClientFactoryBean{").append("type=").append(type).append(", ").append("name='")
.append(name).append("', ").append("url='").append(url).append("', ").append("path='").append(path)
.append("', ").append("decode404=").append(decode404).append(", ").append("inheritParentContext=")
.append("', ").append("dismiss404=").append(dismiss404).append(", ").append("inheritParentContext=")
.append(inheritParentContext).append(", ").append("applicationContext=").append(applicationContext)
.append(", ").append("beanFactory=").append(beanFactory).append(", ").append("fallback=")
.append(fallback).append(", ").append("fallbackFactory=").append(fallbackFactory).append("}")

14
spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/FeignClientProperties.java

@ -129,7 +129,7 @@ public class FeignClientProperties { @@ -129,7 +129,7 @@ public class FeignClientProperties {
private Map<String, Collection<String>> defaultQueryParameters;
private Boolean decode404;
private Boolean dismiss404;
private Class<Decoder> decoder;
@ -211,12 +211,12 @@ public class FeignClientProperties { @@ -211,12 +211,12 @@ public class FeignClientProperties {
this.defaultQueryParameters = defaultQueryParameters;
}
public Boolean getDecode404() {
return decode404;
public Boolean getDismiss404() {
return dismiss404;
}
public void setDecode404(Boolean decode404) {
this.decode404 = decode404;
public void setDismiss404(Boolean dismiss404) {
this.dismiss404 = dismiss404;
}
public Class<Decoder> getDecoder() {
@ -296,7 +296,7 @@ public class FeignClientProperties { @@ -296,7 +296,7 @@ public class FeignClientProperties {
&& Objects.equals(readTimeout, that.readTimeout) && Objects.equals(retryer, that.retryer)
&& Objects.equals(errorDecoder, that.errorDecoder)
&& Objects.equals(requestInterceptors, that.requestInterceptors)
&& Objects.equals(decode404, that.decode404) && Objects.equals(encoder, that.encoder)
&& Objects.equals(dismiss404, that.dismiss404) && Objects.equals(encoder, that.encoder)
&& Objects.equals(decoder, that.decoder) && Objects.equals(contract, that.contract)
&& Objects.equals(exceptionPropagationPolicy, that.exceptionPropagationPolicy)
&& Objects.equals(defaultRequestHeaders, that.defaultRequestHeaders)
@ -309,7 +309,7 @@ public class FeignClientProperties { @@ -309,7 +309,7 @@ public class FeignClientProperties {
@Override
public int hashCode() {
return Objects.hash(loggerLevel, connectTimeout, readTimeout, retryer, errorDecoder, requestInterceptors,
decode404, encoder, decoder, contract, exceptionPropagationPolicy, defaultQueryParameters,
dismiss404, encoder, decoder, contract, exceptionPropagationPolicy, defaultQueryParameters,
defaultRequestHeaders, capabilities, queryMapEncoder, metrics, followRedirects);
}

2
spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/FeignClientsRegistrar.java

@ -221,7 +221,7 @@ class FeignClientsRegistrar implements ImportBeanDefinitionRegistrar, ResourceLo @@ -221,7 +221,7 @@ class FeignClientsRegistrar implements ImportBeanDefinitionRegistrar, ResourceLo
BeanDefinitionBuilder definition = BeanDefinitionBuilder.genericBeanDefinition(clazz, () -> {
factoryBean.setUrl(getUrl(beanFactory, attributes));
factoryBean.setPath(getPath(beanFactory, attributes));
factoryBean.setDecode404(Boolean.parseBoolean(String.valueOf(attributes.get("decode404"))));
factoryBean.setDismiss404(Boolean.parseBoolean(String.valueOf(attributes.get("dismiss404"))));
Object fallback = attributes.get("fallback");
if (fallback != null) {
factoryBean.setFallback(fallback instanceof Class ? (Class<?>) fallback

18
spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/SpringQueryMap.java

@ -21,10 +21,6 @@ import java.lang.annotation.Retention; @@ -21,10 +21,6 @@ import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import feign.QueryMap;
import org.springframework.core.annotation.AliasFor;
/**
* Spring MVC equivalent of OpenFeign's {@link feign.QueryMap} parameter annotation.
*
@ -36,18 +32,4 @@ import org.springframework.core.annotation.AliasFor; @@ -36,18 +32,4 @@ import org.springframework.core.annotation.AliasFor;
@Target({ ElementType.PARAMETER })
public @interface SpringQueryMap {
/**
* @see QueryMap#encoded()
* @return alias for {@link #encoded()}.
*/
@AliasFor("encoded")
boolean value() default false;
/**
* @see QueryMap#encoded()
* @return Specifies whether parameter names and values are already encoded.
*/
@AliasFor("value")
boolean encoded() default false;
}

2
spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/loadbalancer/LoadBalancerUtils.java

@ -80,7 +80,7 @@ final class LoadBalancerUtils { @@ -80,7 +80,7 @@ final class LoadBalancerUtils {
static RequestData buildRequestData(Request request) {
HttpHeaders requestHeaders = new HttpHeaders();
request.headers().forEach((key, value) -> requestHeaders.put(key, new ArrayList<>(value)));
return new RequestData(HttpMethod.resolve(request.httpMethod().name()), URI.create(request.url()),
return new RequestData(HttpMethod.valueOf(request.httpMethod().name()), URI.create(request.url()),
requestHeaders, null, new HashMap<>());
}

2
spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/loadbalancer/RetryableFeignBlockingLoadBalancerClient.java

@ -245,7 +245,7 @@ public class RetryableFeignBlockingLoadBalancerClient implements Client { @@ -245,7 +245,7 @@ public class RetryableFeignBlockingLoadBalancerClient implements Client {
return new HttpRequest() {
@Override
public HttpMethod getMethod() {
return HttpMethod.resolve(request.httpMethod().name());
return HttpMethod.valueOf(request.httpMethod().name());
}
@Override

21
spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/support/SpringEncoder.java

@ -79,26 +79,7 @@ public class SpringEncoder implements Encoder { @@ -79,26 +79,7 @@ public class SpringEncoder implements Encoder {
private final ObjectProvider<HttpMessageConverterCustomizer> customizers;
public SpringEncoder(ObjectFactory<HttpMessageConverters> messageConverters) {
this(new SpringFormEncoder(), messageConverters);
}
/**
* @deprecated in favour of
* {@link SpringEncoder#SpringEncoder(SpringFormEncoder, ObjectFactory, FeignEncoderProperties, ObjectProvider)}
*/
@Deprecated
public SpringEncoder(SpringFormEncoder springFormEncoder, ObjectFactory<HttpMessageConverters> messageConverters) {
this(springFormEncoder, messageConverters, new FeignEncoderProperties());
}
/**
* @deprecated in favour of
* {@link SpringEncoder#SpringEncoder(SpringFormEncoder, ObjectFactory, FeignEncoderProperties, ObjectProvider)}
*/
@Deprecated
public SpringEncoder(SpringFormEncoder springFormEncoder, ObjectFactory<HttpMessageConverters> messageConverters,
FeignEncoderProperties encoderProperties) {
this(springFormEncoder, messageConverters, encoderProperties, new EmptyObjectProvider<>());
this(new SpringFormEncoder(), messageConverters, new FeignEncoderProperties(), new EmptyObjectProvider<>());
}
public SpringEncoder(SpringFormEncoder springFormEncoder, ObjectFactory<HttpMessageConverters> messageConverters,

14
spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/FeignClientBuilderTests.java

@ -92,8 +92,8 @@ class FeignClientBuilderTests { @@ -92,8 +92,8 @@ class FeignClientBuilderTests {
// on this builder class.
// (2) Or a new field was added and the builder class has to be extended with this
// new field.
assertThat(methodNames).containsExactly("contextId", "decode404", "fallback", "fallbackFactory", "name", "path",
"url");
assertThat(methodNames).containsExactly("contextId", "dismiss404", "fallback", "fallbackFactory", "name",
"path", "url");
}
@Test
@ -110,7 +110,7 @@ class FeignClientBuilderTests { @@ -110,7 +110,7 @@ class FeignClientBuilderTests {
// and:
assertFactoryBeanField(builder, "url", getDefaultValueFromFeignClientAnnotation("url"));
assertFactoryBeanField(builder, "path", getDefaultValueFromFeignClientAnnotation("path"));
assertFactoryBeanField(builder, "decode404", getDefaultValueFromFeignClientAnnotation("decode404"));
assertFactoryBeanField(builder, "dismiss404", getDefaultValueFromFeignClientAnnotation("dismiss404"));
assertFactoryBeanField(builder, "fallback", getDefaultValueFromFeignClientAnnotation("fallback"));
assertFactoryBeanField(builder, "fallbackFactory", getDefaultValueFromFeignClientAnnotation("fallbackFactory"));
}
@ -119,7 +119,7 @@ class FeignClientBuilderTests { @@ -119,7 +119,7 @@ class FeignClientBuilderTests {
void forType_allFieldsSetOnBuilder() {
// when:
final FeignClientBuilder.Builder builder = this.feignClientBuilder.forType(TestFeignClient.class, "TestClient")
.decode404(true).url("Url/").path("/Path").contextId("TestContext");
.dismiss404(true).url("Url/").path("/Path").contextId("TestContext");
// then:
assertFactoryBeanField(builder, "applicationContext", this.applicationContext);
@ -130,7 +130,7 @@ class FeignClientBuilderTests { @@ -130,7 +130,7 @@ class FeignClientBuilderTests {
// and:
assertFactoryBeanField(builder, "url", "http://Url/");
assertFactoryBeanField(builder, "path", "/Path");
assertFactoryBeanField(builder, "decode404", true);
assertFactoryBeanField(builder, "dismiss404", true);
}
@ -138,7 +138,7 @@ class FeignClientBuilderTests { @@ -138,7 +138,7 @@ class FeignClientBuilderTests {
void forType_clientFactoryBeanProvided() {
// when:
final FeignClientBuilder.Builder builder = this.feignClientBuilder
.forType(TestFeignClient.class, new FeignClientFactoryBean(), "TestClient").decode404(true)
.forType(TestFeignClient.class, new FeignClientFactoryBean(), "TestClient").dismiss404(true)
.path("Path/").url("Url/").contextId("TestContext").customize(Feign.Builder::doNotCloseAfterDecode);
// then:
@ -150,7 +150,7 @@ class FeignClientBuilderTests { @@ -150,7 +150,7 @@ class FeignClientBuilderTests {
// and:
assertFactoryBeanField(builder, "url", "http://Url/");
assertFactoryBeanField(builder, "path", "/Path");
assertFactoryBeanField(builder, "decode404", true);
assertFactoryBeanField(builder, "dismiss404", true);
List<FeignBuilderCustomizer> additionalCustomizers = getFactoryBeanField(builder, "additionalCustomizers");
assertThat(additionalCustomizers).hasSize(1);
}

8
spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/FeignClientConfigurationTests.java

@ -62,7 +62,7 @@ class FeignClientConfigurationTests { @@ -62,7 +62,7 @@ class FeignClientConfigurationTests {
assertThat(config.getRequestInterceptors()).isNull();
assertThat(config.getDefaultRequestHeaders()).isNull();
assertThat(config.getDefaultQueryParameters()).isNull();
assertThat(config.getDecode404()).isNull();
assertThat(config.getDismiss404()).isNull();
assertThat(config.getDecoder()).isNull();
assertThat(config.getEncoder()).isNull();
assertThat(config.getContract()).isNull();
@ -86,7 +86,7 @@ class FeignClientConfigurationTests { @@ -86,7 +86,7 @@ class FeignClientConfigurationTests {
config.setDefaultRequestHeaders(defaultRequestHeaders);
Map<String, Collection<String>> defaultQueryParameters = Maps.newHashMap("default", Collections.emptyList());
config.setDefaultQueryParameters(defaultQueryParameters);
config.setDecode404(true);
config.setDismiss404(true);
config.setDecoder(Decoder.class);
config.setEncoder(Encoder.class);
config.setContract(Contract.class);
@ -105,7 +105,7 @@ class FeignClientConfigurationTests { @@ -105,7 +105,7 @@ class FeignClientConfigurationTests {
assertThat(config.getRequestInterceptors()).isSameAs(requestInterceptors);
assertThat(config.getDefaultRequestHeaders()).isSameAs(defaultRequestHeaders);
assertThat(config.getDefaultQueryParameters()).isSameAs(defaultQueryParameters);
assertThat(config.getDecode404()).isTrue();
assertThat(config.getDismiss404()).isTrue();
assertThat(config.getDecoder()).isSameAs(Decoder.class);
assertThat(config.getEncoder()).isSameAs(Encoder.class);
assertThat(config.getContract()).isSameAs(Contract.class);
@ -125,7 +125,7 @@ class FeignClientConfigurationTests { @@ -125,7 +125,7 @@ class FeignClientConfigurationTests {
FeignClientProperties.FeignClientConfiguration configTwo = new FeignClientProperties.FeignClientConfiguration();
FeignClientProperties.FeignClientConfiguration configThree = new FeignClientProperties.FeignClientConfiguration();
FeignClientProperties.FeignClientConfiguration differentConfig = new FeignClientProperties.FeignClientConfiguration();
differentConfig.setDecode404(true);
differentConfig.setDismiss404(true);
assertEqualsReflexivity(configOne);

41
spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/FeignClientsRegistrarIntegrationTests.java

@ -48,30 +48,11 @@ class FeignClientsRegistrarIntegrationTests { @@ -48,30 +48,11 @@ class FeignClientsRegistrarIntegrationTests {
assertThatExceptionOfType(NoSuchBeanDefinitionException.class).isThrownBy(() -> context.getBean("qualifier3"));
}
@Test
void shouldUseQualifierIfQualifiersArrayNotPresent() {
assertThat(context.getBean("qualifier4")).isNotNull();
}
@Test
void shouldUseDefaultQualifierWhenNonePresent() {
assertThat(context.getBean("noQualifiersFeignClient")).isNotNull();
}
@Test
void shouldUseQualifierWhenEmptyQualifiers() {
assertThat(context.getBean("test1")).isNotNull();
assertThatExceptionOfType(NoSuchBeanDefinitionException.class)
.isThrownBy(() -> context.getBean("emptyQualifiersFeignClient"));
}
@Test
void shouldUseQualifierWhenWhitespaceQualifiers() {
assertThat(context.getBean("test2")).isNotNull();
assertThatExceptionOfType(NoSuchBeanDefinitionException.class)
.isThrownBy(() -> context.getBean("whitespaceQualifiersFeignClient"));
}
@Test
void shouldUseDefaultQualifierWhenEmptyQualifiers() {
assertThat(context.getBean("emptyQualifiersNoQualifierFeignClient")).isNotNull();
@ -82,31 +63,16 @@ class FeignClientsRegistrarIntegrationTests { @@ -82,31 +63,16 @@ class FeignClientsRegistrarIntegrationTests {
assertThat(context.getBean("whitespaceQualifiersNoQualifierFeignClient")).isNotNull();
}
@FeignClient(name = "qualifiersClient", qualifiers = { "qualifier1", "qualifier2" }, qualifier = "qualifier3")
@FeignClient(name = "qualifiersClient", qualifiers = { "qualifier1", "qualifier2" })
protected interface QualifiersClient {
}
@FeignClient(name = "qualifierClient", qualifier = "qualifier4")
protected interface QualifierClient {
}
@FeignClient(name = "noQualifiers")
protected interface NoQualifiersClient {
}
@FeignClient(name = "emptyQualifiers", qualifier = "test1", qualifiers = {})
protected interface EmptyQualifiersClient {
}
@FeignClient(name = "whitespaceQualifiers", qualifier = "test2", qualifiers = { " " })
protected interface WhitespaceQualifiersClient {
}
@FeignClient(name = "emptyQualifiersNoQualifier", qualifiers = {})
protected interface EmptyQualifiersNoQualifierClient {
@ -120,9 +86,8 @@ class FeignClientsRegistrarIntegrationTests { @@ -120,9 +86,8 @@ class FeignClientsRegistrarIntegrationTests {
@Configuration(proxyBeanMethods = false)
@EnableAutoConfiguration
@Import(NoSecurityConfiguration.class)
@EnableFeignClients(clients = { QualifiersClient.class, QualifierClient.class, NoQualifiersClient.class,
EmptyQualifiersClient.class, WhitespaceQualifiersClient.class, EmptyQualifiersNoQualifierClient.class,
WhitespaceQualifiersNoQualifierClient.class })
@EnableFeignClients(clients = { NoQualifiersClient.class, QualifiersClient.class,
EmptyQualifiersNoQualifierClient.class, WhitespaceQualifiersNoQualifierClient.class })
protected static class QualifiersTestConfig {
}

4
spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/SpringDecoderTests.java

@ -67,9 +67,9 @@ class SpringDecoderTests extends FeignClientFactoryBean { @@ -67,9 +67,9 @@ class SpringDecoderTests extends FeignClientFactoryBean {
return testClient(false);
}
public TestClient testClient(boolean decode404) {
public TestClient testClient(boolean dismiss404) {
setType(this.getClass());
setDecode404(decode404);
setDismiss404(dismiss404);
return feign(this.context).target(TestClient.class, "http://localhost:" + this.port);
}

2
spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/beans/extra/TestClient.java

@ -20,7 +20,7 @@ import org.springframework.cloud.openfeign.FeignClient; @@ -20,7 +20,7 @@ import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.cloud.openfeign.beans.BeansFeignClientTests.Hello;
import org.springframework.web.bind.annotation.GetMapping;
@FeignClient(value = "otherapp", qualifier = "uniquequalifier")
@FeignClient(value = "otherapp", qualifiers = { "uniquequalifier" })
public interface TestClient {
@GetMapping("/hello")

10
spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/test/NoSecurityConfiguration.java

@ -16,16 +16,18 @@ @@ -16,16 +16,18 @@
package org.springframework.cloud.openfeign.test;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
import org.springframework.security.web.SecurityFilterChain;
@Configuration(proxyBeanMethods = false)
public class NoSecurityConfiguration extends WebSecurityConfigurerAdapter {
public class NoSecurityConfiguration {
@Override
protected void configure(HttpSecurity http) throws Exception {
@Bean
SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
http.authorizeRequests().anyRequest().permitAll().and().csrf().disable();
return http.build();
}
}

2
spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/valid/ValidFeignClientTests.java

@ -498,7 +498,7 @@ class ValidFeignClientTests { @@ -498,7 +498,7 @@ class ValidFeignClientTests {
}
@FeignClient(name = "localapp2", decode404 = true)
@FeignClient(name = "localapp2", dismiss404 = true)
protected interface DecodingTestClient {
@GetMapping("/notFound")

2
spring-cloud-openfeign-core/src/test/resources/feign-properties.properties

@ -7,7 +7,7 @@ spring.cloud.openfeign.client.config.default.readTimeout=5000 @@ -7,7 +7,7 @@ spring.cloud.openfeign.client.config.default.readTimeout=5000
spring.cloud.openfeign.client.config.default.loggerLevel=full
spring.cloud.openfeign.client.config.default.errorDecoder=org.springframework.cloud.openfeign.FeignClientUsingPropertiesTests.DefaultErrorDecoder
spring.cloud.openfeign.client.config.default.retryer=org.springframework.cloud.openfeign.FeignClientUsingPropertiesTests.NoRetryer
spring.cloud.openfeign.client.config.default.decode404=true
spring.cloud.openfeign.client.config.default.dismiss404=true
spring.cloud.openfeign.client.config.default.capabilities=org.springframework.cloud.openfeign.FeignClientUsingPropertiesTests.NoOpCapability
spring.cloud.openfeign.client.config.default.queryMapEncoder=org.springframework.cloud.openfeign.FeignClientUsingPropertiesTests.NoOpQueryMapEncoder
spring.cloud.openfeign.client.config.foo.requestInterceptors[0]=org.springframework.cloud.openfeign.FeignClientUsingPropertiesTests.FooRequestInterceptor

Loading…
Cancel
Save