From 28345b2ad9ce3049e4efac9242ee29bf79abf4f1 Mon Sep 17 00:00:00 2001 From: Olga Maciaszek-Sharma Date: Tue, 11 Oct 2022 17:18:35 +0200 Subject: [PATCH] Remove deprecations and outdated API usage. (#768) --- .../main/asciidoc/spring-cloud-openfeign.adoc | 6 +-- .../cloud/openfeign/FeignClient.java | 21 +--------- .../cloud/openfeign/FeignClientBuilder.java | 6 +-- .../openfeign/FeignClientFactoryBean.java | 25 +++++------ .../openfeign/FeignClientProperties.java | 14 +++---- .../openfeign/FeignClientsRegistrar.java | 2 +- .../cloud/openfeign/SpringQueryMap.java | 18 -------- .../loadbalancer/LoadBalancerUtils.java | 2 +- ...ryableFeignBlockingLoadBalancerClient.java | 2 +- .../openfeign/support/SpringEncoder.java | 21 +--------- .../openfeign/FeignClientBuilderTests.java | 14 +++---- .../FeignClientConfigurationTests.java | 8 ++-- ...FeignClientsRegistrarIntegrationTests.java | 41 ++----------------- .../cloud/openfeign/SpringDecoderTests.java | 4 +- .../openfeign/beans/extra/TestClient.java | 2 +- .../test/NoSecurityConfiguration.java | 10 +++-- .../valid/ValidFeignClientTests.java | 2 +- .../resources/feign-properties.properties | 2 +- 18 files changed, 54 insertions(+), 146 deletions(-) diff --git a/docs/src/main/asciidoc/spring-cloud-openfeign.adoc b/docs/src/main/asciidoc/spring-cloud-openfeign.adoc index e756a7ad..666def20 100644 --- a/docs/src/main/asciidoc/spring-cloud-openfeign.adoc +++ b/docs/src/main/asciidoc/spring-cloud-openfeign.adoc @@ -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 === 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. diff --git a/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/FeignClient.java b/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/FeignClient.java index 773b157a..ad3941cf 100644 --- a/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/FeignClient.java +++ b/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/FeignClient.java @@ -64,27 +64,8 @@ public @interface FeignClient { @AliasFor("value") String name() default ""; - /** - * @return the @Qualifier 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 null or whitespace values, in which case we'll fall back - * first to {@link #qualifier()} and, if that's also not present, to the default = - * contextId + "FeignClient". - */ - @Deprecated - String qualifier() default ""; - /** * @return the @Qualifiers 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 null or whitespace values, in which case we'll fall back - * first to {@link #qualifier()} and, if that's also not present, to the default = - * contextId + "FeignClient". */ String[] qualifiers() default {}; @@ -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 diff --git a/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/FeignClientBuilder.java b/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/FeignClientBuilder.java index 81c53e0f..227feb5b 100644 --- a/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/FeignClientBuilder.java +++ b/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/FeignClientBuilder.java @@ -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 url(final String url) { @@ -102,8 +102,8 @@ public class FeignClientBuilder { return this; } - public Builder decode404(final boolean decode404) { - this.feignClientFactoryBean.setDecode404(decode404); + public Builder dismiss404(final boolean dismiss404) { + this.feignClientFactoryBean.setDismiss404(dismiss404); return this; } diff --git a/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/FeignClientFactoryBean.java b/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/FeignClientFactoryBean.java index b27d450b..4e40ea19 100644 --- a/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/FeignClientFactoryBean.java +++ b/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/FeignClientFactoryBean.java @@ -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 if (queryMapEncoder != null) { builder.queryMapEncoder(queryMapEncoder); } - if (decode404) { + if (dismiss404) { builder.dismiss404(); } ExceptionPropagationPolicy exceptionPropagationPolicy = getInheritedAwareOptional(context, @@ -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 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 } 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 @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("}") diff --git a/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/FeignClientProperties.java b/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/FeignClientProperties.java index 09184acd..ac35d22f 100644 --- a/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/FeignClientProperties.java +++ b/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/FeignClientProperties.java @@ -129,7 +129,7 @@ public class FeignClientProperties { private Map> defaultQueryParameters; - private Boolean decode404; + private Boolean dismiss404; private Class decoder; @@ -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 getDecoder() { @@ -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 { @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); } diff --git a/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/FeignClientsRegistrar.java b/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/FeignClientsRegistrar.java index 8c2fda6b..91c8f534 100644 --- a/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/FeignClientsRegistrar.java +++ b/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/FeignClientsRegistrar.java @@ -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 diff --git a/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/SpringQueryMap.java b/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/SpringQueryMap.java index 2d77cdfa..918f0438 100644 --- a/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/SpringQueryMap.java +++ b/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/SpringQueryMap.java @@ -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; @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; - } diff --git a/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/loadbalancer/LoadBalancerUtils.java b/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/loadbalancer/LoadBalancerUtils.java index d97e9225..9432d05a 100644 --- a/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/loadbalancer/LoadBalancerUtils.java +++ b/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/loadbalancer/LoadBalancerUtils.java @@ -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<>()); } diff --git a/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/loadbalancer/RetryableFeignBlockingLoadBalancerClient.java b/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/loadbalancer/RetryableFeignBlockingLoadBalancerClient.java index 26dac934..6c88ef51 100644 --- a/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/loadbalancer/RetryableFeignBlockingLoadBalancerClient.java +++ b/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/loadbalancer/RetryableFeignBlockingLoadBalancerClient.java @@ -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 diff --git a/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/support/SpringEncoder.java b/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/support/SpringEncoder.java index fb840845..082087b4 100644 --- a/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/support/SpringEncoder.java +++ b/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/support/SpringEncoder.java @@ -79,26 +79,7 @@ public class SpringEncoder implements Encoder { private final ObjectProvider customizers; public SpringEncoder(ObjectFactory messageConverters) { - this(new SpringFormEncoder(), messageConverters); - } - - /** - * @deprecated in favour of - * {@link SpringEncoder#SpringEncoder(SpringFormEncoder, ObjectFactory, FeignEncoderProperties, ObjectProvider)} - */ - @Deprecated - public SpringEncoder(SpringFormEncoder springFormEncoder, ObjectFactory messageConverters) { - this(springFormEncoder, messageConverters, new FeignEncoderProperties()); - } - - /** - * @deprecated in favour of - * {@link SpringEncoder#SpringEncoder(SpringFormEncoder, ObjectFactory, FeignEncoderProperties, ObjectProvider)} - */ - @Deprecated - public SpringEncoder(SpringFormEncoder springFormEncoder, ObjectFactory messageConverters, - FeignEncoderProperties encoderProperties) { - this(springFormEncoder, messageConverters, encoderProperties, new EmptyObjectProvider<>()); + this(new SpringFormEncoder(), messageConverters, new FeignEncoderProperties(), new EmptyObjectProvider<>()); } public SpringEncoder(SpringFormEncoder springFormEncoder, ObjectFactory messageConverters, diff --git a/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/FeignClientBuilderTests.java b/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/FeignClientBuilderTests.java index 6530628e..c4661d5a 100644 --- a/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/FeignClientBuilderTests.java +++ b/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/FeignClientBuilderTests.java @@ -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 { // 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 { 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 { // and: assertFactoryBeanField(builder, "url", "http://Url/"); assertFactoryBeanField(builder, "path", "/Path"); - assertFactoryBeanField(builder, "decode404", true); + assertFactoryBeanField(builder, "dismiss404", true); } @@ -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 { // and: assertFactoryBeanField(builder, "url", "http://Url/"); assertFactoryBeanField(builder, "path", "/Path"); - assertFactoryBeanField(builder, "decode404", true); + assertFactoryBeanField(builder, "dismiss404", true); List additionalCustomizers = getFactoryBeanField(builder, "additionalCustomizers"); assertThat(additionalCustomizers).hasSize(1); } diff --git a/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/FeignClientConfigurationTests.java b/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/FeignClientConfigurationTests.java index a250ec7e..100172af 100644 --- a/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/FeignClientConfigurationTests.java +++ b/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/FeignClientConfigurationTests.java @@ -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 { config.setDefaultRequestHeaders(defaultRequestHeaders); Map> 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 { 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 { 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); diff --git a/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/FeignClientsRegistrarIntegrationTests.java b/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/FeignClientsRegistrarIntegrationTests.java index b943d955..e756c66f 100644 --- a/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/FeignClientsRegistrarIntegrationTests.java +++ b/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/FeignClientsRegistrarIntegrationTests.java @@ -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 { 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 { @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 { } diff --git a/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/SpringDecoderTests.java b/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/SpringDecoderTests.java index c97c0f71..12ff809e 100644 --- a/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/SpringDecoderTests.java +++ b/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/SpringDecoderTests.java @@ -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); } diff --git a/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/beans/extra/TestClient.java b/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/beans/extra/TestClient.java index 5df05f37..8202aea3 100644 --- a/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/beans/extra/TestClient.java +++ b/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; 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") diff --git a/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/test/NoSecurityConfiguration.java b/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/test/NoSecurityConfiguration.java index 24187187..4f73cc4d 100644 --- a/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/test/NoSecurityConfiguration.java +++ b/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/test/NoSecurityConfiguration.java @@ -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(); } } diff --git a/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/valid/ValidFeignClientTests.java b/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/valid/ValidFeignClientTests.java index 2acd5382..24341d41 100644 --- a/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/valid/ValidFeignClientTests.java +++ b/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/valid/ValidFeignClientTests.java @@ -498,7 +498,7 @@ class ValidFeignClientTests { } - @FeignClient(name = "localapp2", decode404 = true) + @FeignClient(name = "localapp2", dismiss404 = true) protected interface DecodingTestClient { @GetMapping("/notFound") diff --git a/spring-cloud-openfeign-core/src/test/resources/feign-properties.properties b/spring-cloud-openfeign-core/src/test/resources/feign-properties.properties index c287b431..1c5cbf6a 100644 --- a/spring-cloud-openfeign-core/src/test/resources/feign-properties.properties +++ b/spring-cloud-openfeign-core/src/test/resources/feign-properties.properties @@ -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