From efbb0b8224335d2ce743e0089b7f304c23fd998e Mon Sep 17 00:00:00 2001 From: Ryan Baxter Date: Thu, 10 Mar 2022 19:53:45 -0500 Subject: [PATCH] Adopt new circuit breaking naming convention by default --- docs/src/main/asciidoc/spring-cloud-openfeign.adoc | 8 +++----- .../cloud/openfeign/FeignAutoConfiguration.java | 8 ++++---- .../CircuitBreakerAutoConfigurationTests.java | 6 +++--- 3 files changed, 10 insertions(+), 12 deletions(-) diff --git a/docs/src/main/asciidoc/spring-cloud-openfeign.adoc b/docs/src/main/asciidoc/spring-cloud-openfeign.adoc index b5107383..83884220 100644 --- a/docs/src/main/asciidoc/spring-cloud-openfeign.adoc +++ b/docs/src/main/asciidoc/spring-cloud-openfeign.adoc @@ -379,11 +379,7 @@ To enable Spring Cloud CircuitBreaker group set the `spring.cloud.openfeign.circ [[spring-clou-feign-circuitbreaker-configurationproperties]] === Configuring CircuitBreakers With Configuration Properties -You can configure CircuitBreakers via configuration properties. To do set -`feign.circuitbreaker.alphanumeric-ids.enabled` to `true`. Since -you cannot use characters like `#`, `(`, `)` `,` in configuration property names we need to -change the naming convention for the ids of the circuit breakers generated by OpenFeign. The above -property will do this for you. +You can configure CircuitBreakers via configuration properties. For example, if you had this Feign client @@ -417,6 +413,8 @@ resilience4j: timeoutDuration: 10s ---- +NOTE: If you want to switch back to the circuit breaker names used prior to Spring Cloud +2022.0.0 you can set `spring.cloud.openfeign.circuitbreaker.alphanumeric-ids.enabled` to `false`. [[spring-cloud-feign-circuitbreaker-fallback]] === Feign Spring Cloud CircuitBreaker Fallbacks diff --git a/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/FeignAutoConfiguration.java b/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/FeignAutoConfiguration.java index d876e7c4..cbb96b07 100644 --- a/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/FeignAutoConfiguration.java +++ b/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/FeignAutoConfiguration.java @@ -165,16 +165,16 @@ public class FeignAutoConfiguration { @Bean @ConditionalOnMissingBean(CircuitBreakerNameResolver.class) - @ConditionalOnProperty(value = "feign.circuitbreaker.alphanumeric-ids.enabled", - havingValue = "false", matchIfMissing = true) + @ConditionalOnProperty(value = "spring.cloud.openfeign.circuitbreaker.alphanumeric-ids.enabled", + havingValue = "false") public CircuitBreakerNameResolver circuitBreakerNameResolver() { return new DefaultCircuitBreakerNameResolver(); } @Bean @ConditionalOnMissingBean(CircuitBreakerNameResolver.class) - @ConditionalOnProperty(value = "feign.circuitbreaker.alphanumeric-ids.enabled", - havingValue = "true") + @ConditionalOnProperty(value = "spring.cloud.openfeign.circuitbreaker.alphanumeric-ids.enabled", + havingValue = "true", matchIfMissing = true) public CircuitBreakerNameResolver alphanumericCircuitBreakerNameResolver() { return new AlphanumericCircuitBreakerNameResolver(); } diff --git a/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/circuitbreaker/CircuitBreakerAutoConfigurationTests.java b/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/circuitbreaker/CircuitBreakerAutoConfigurationTests.java index 983e9558..70b9c122 100644 --- a/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/circuitbreaker/CircuitBreakerAutoConfigurationTests.java +++ b/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/circuitbreaker/CircuitBreakerAutoConfigurationTests.java @@ -36,7 +36,8 @@ public class CircuitBreakerAutoConfigurationTests { @SpringBootTest(classes = CircuitBreakerTests.Application.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, value = { "spring.application.name=springcircuittest", "spring.jmx.enabled=false", - "feign.circuitbreaker.enabled=true" }) + "spring.cloud.openfeign.circuitbreaker.enabled=true", + "spring.cloud.openfeign.circuitbreaker.alphanumeric-ids.enabled=false"}) @Nested class DefaultNamingStrategy { @@ -57,8 +58,7 @@ public class CircuitBreakerAutoConfigurationTests { @SpringBootTest(classes = CircuitBreakerTests.Application.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, value = { "spring.application.name=springcircuittest", "spring.jmx.enabled=false", - "feign.circuitbreaker.enabled=true", - "feign.circuitbreaker.alphanumeric-ids.enabled=true" }) + "spring.cloud.openfeign.circuitbreaker.enabled=true",}) @Nested class AlphanumericNamingStrategy {