From df9e67e70e4b560dd26366f53b103ac6e188164d Mon Sep 17 00:00:00 2001 From: misselvexu Date: Wed, 29 Jun 2022 05:26:54 +0800 Subject: [PATCH] Optimize auto configuration code . --- .gitignore | 1 + .idea/icon.png | Bin 0 -> 17410 bytes .../MetadataTransferAutoConfiguration.java | 28 ++--- .../DecodeTransferMetadataReactiveFilter.java | 5 +- .../DecodeTransferMetadataServletFilter.java | 5 +- .../EncodeTransferMedataFeignInterceptor.java | 4 +- ...TransferMedataRestTemplateInterceptor.java | 10 +- .../core/EncodeTransferMedataScgFilter.java | 4 +- .../EncodeTransferMetadataZuulFilter.java | 4 +- .../EncodeTransferMedataScgFilterTest.java | 4 +- .../EncodeTransferMetadataZuulFilterTest.java | 4 +- ...olarisCircuitBreakerAutoConfiguration.java | 105 ++++++++++++++++++ ...sCircuitBreakerBootstrapConfiguration.java | 5 +- .../PolarisFeignClientAutoConfiguration.java | 61 ---------- .../PolarisRestTemplateAutoConfiguration.java | 56 ---------- .../main/resources/META-INF/spring.factories | 3 +- ...larisFeignClientAutoConfigurationTest.java | 8 +- .../PolarisConfigAutoConfiguration.java | 3 +- ...larisConfigBootstrapAutoConfiguration.java | 3 +- .../DiscoveryPropertiesAutoConfiguration.java | 36 +----- .../polaris/PolarisDiscoveryProperties.java | 6 +- .../consul/ConsulContextProperties.java | 2 +- .../polaris/registry/PolarisRegistration.java | 36 +++--- ...larisServiceRegistryAutoConfiguration.java | 12 +- .../PolarisRibbonServerListConfiguration.java | 2 - ...coveryPropertiesAutoConfigurationTest.java | 18 +-- .../registry/PolarisRegistrationTest.java | 15 ++- ...arisRibbonServerListConfigurationTest.java | 2 +- .../PolarisRateLimitAutoConfiguration.java | 13 ++- ...sRateLimitPropertiesAutoConfiguration.java | 1 + .../config/RateLimitConfigModifier.java | 2 +- .../filter/QuotaCheckServletFilter.java | 5 + .../ratelimit/utils/RateLimitUtils.java | 1 - ...PolarisRateLimitAutoConfigurationTest.java | 6 +- ...BalancerClientFilterBeanPostProcessor.java | 6 +- ...dBalancerInterceptorBeanPostProcessor.java | 6 +- .../router/config/FeignAutoConfiguration.java | 2 +- .../FeignLoadBalancerConfiguration.java | 1 + .../router/config/RibbonConfiguration.java | 1 + .../config/RouterAutoConfiguration.java | 3 +- .../PolarisMetadataRouterProperties.java | 1 + .../PolarisNearByRouterProperties.java | 1 + .../feign/FeignExpressionLabelUtils.java | 2 +- ...olarisCachingSpringLoadBalanceFactory.java | 1 + .../feign/PolarisFeignLoadBalancer.java | 15 ++- .../feign/RouterLabelFeignInterceptor.java | 7 +- .../RouterLabelFeignInterceptorTest.java | 6 +- .../common/constant/ContextConstant.java | 7 ++ .../config/MetadataAutoConfiguration.java | 2 +- .../cloud/common/util/AddressUtils.java | 1 - .../util/ApplicationContextAwareUtils.java | 3 +- .../cloud/common/util/JacksonUtils.java | 1 + .../cloud/common/util/ReflectionUtils.java | 1 - .../callee/GatewayCalleeController.java | 7 +- .../callee/GatewayCalleeController.java | 7 +- .../PolarisContextAutoConfiguration.java | 2 + ...arisContextBootstrapAutoConfiguration.java | 2 + .../PolarisLoadBalancerAutoConfiguration.java | 1 + .../PolarisRibbonClientConfiguration.java | 2 - 59 files changed, 270 insertions(+), 288 deletions(-) create mode 100644 .idea/icon.png create mode 100644 spring-cloud-starter-tencent-polaris-circuitbreaker/src/main/java/com/tencent/cloud/polaris/circuitbreaker/config/PolarisCircuitBreakerAutoConfiguration.java delete mode 100644 spring-cloud-starter-tencent-polaris-circuitbreaker/src/main/java/com/tencent/cloud/polaris/circuitbreaker/config/PolarisFeignClientAutoConfiguration.java delete mode 100644 spring-cloud-starter-tencent-polaris-circuitbreaker/src/main/java/com/tencent/cloud/polaris/circuitbreaker/config/PolarisRestTemplateAutoConfiguration.java diff --git a/.gitignore b/.gitignore index 704fcd5cd..e26eaf9d0 100644 --- a/.gitignore +++ b/.gitignore @@ -8,6 +8,7 @@ *.ipr *.iws .idea/ +!/.idea/icon.png # Build targets /target diff --git a/.idea/icon.png b/.idea/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..196015c40b2b43527351cef74ad804f020d37353 GIT binary patch literal 17410 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 metadataServletFilterRegistrationBean( @@ -87,9 +87,9 @@ public class MetadataTransferAutoConfiguration { /** * Create when web application type is REACTIVE. */ - @Configuration + @Configuration(proxyBeanMethods = false) @ConditionalOnWebApplication(type = ConditionalOnWebApplication.Type.REACTIVE) - static class MetadataReactiveFilterConfig { + protected static class MetadataReactiveFilterConfig { @Bean public DecodeTransferMetadataReactiveFilter metadataReactiveFilter() { @@ -101,9 +101,9 @@ public class MetadataTransferAutoConfiguration { /** * Create when gateway application is Zuul. */ - @Configuration + @Configuration(proxyBeanMethods = false) @ConditionalOnClass(name = "com.netflix.zuul.http.ZuulServlet") - static class MetadataTransferZuulFilterConfig { + protected static class MetadataTransferZuulFilterConfig { @Bean public ZuulFilter encodeTransferMetadataZuulFilter() { @@ -115,9 +115,9 @@ public class MetadataTransferAutoConfiguration { /** * Create when gateway application is SCG. */ - @Configuration + @Configuration(proxyBeanMethods = false) @ConditionalOnClass(name = "org.springframework.cloud.gateway.filter.GlobalFilter") - static class MetadataTransferScgFilterConfig { + protected static class MetadataTransferScgFilterConfig { @Bean public GlobalFilter encodeTransferMedataScgFilter() { @@ -129,9 +129,9 @@ public class MetadataTransferAutoConfiguration { /** * Create when Feign exists. */ - @Configuration + @Configuration(proxyBeanMethods = false) @ConditionalOnClass(name = "feign.Feign") - static class MetadataTransferFeignInterceptorConfig { + protected static class MetadataTransferFeignInterceptorConfig { @Bean public EncodeTransferMedataFeignInterceptor encodeTransferMedataFeignInterceptor() { @@ -143,9 +143,9 @@ public class MetadataTransferAutoConfiguration { /** * Create when RestTemplate exists. */ - @Configuration + @Configuration(proxyBeanMethods = false) @ConditionalOnClass(name = "org.springframework.web.client.RestTemplate") - static class MetadataTransferRestTemplateConfig implements ApplicationContextAware { + protected static class MetadataTransferRestTemplateConfig implements ApplicationContextAware { private ApplicationContext context; @@ -188,7 +188,7 @@ public class MetadataTransferAutoConfiguration { public static class EncodeTransferMetadataRestTemplatePostProcessor implements BeanPostProcessor { - private EncodeTransferMedataRestTemplateInterceptor encodeTransferMedataRestTemplateInterceptor; + private final EncodeTransferMedataRestTemplateInterceptor encodeTransferMedataRestTemplateInterceptor; EncodeTransferMetadataRestTemplatePostProcessor( EncodeTransferMedataRestTemplateInterceptor encodeTransferMedataRestTemplateInterceptor) { diff --git a/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/DecodeTransferMetadataReactiveFilter.java b/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/DecodeTransferMetadataReactiveFilter.java index 3a258560e..e40266560 100644 --- a/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/DecodeTransferMetadataReactiveFilter.java +++ b/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/DecodeTransferMetadataReactiveFilter.java @@ -20,7 +20,6 @@ package com.tencent.cloud.metadata.core; import java.io.UnsupportedEncodingException; import java.net.URLDecoder; -import java.nio.charset.StandardCharsets; import java.util.HashMap; import java.util.Map; @@ -39,6 +38,8 @@ import org.springframework.web.server.ServerWebExchange; import org.springframework.web.server.WebFilter; import org.springframework.web.server.WebFilterChain; +import static com.tencent.cloud.common.constant.ContextConstant.UTF_8; + /** * Filter used for storing the metadata from upstream temporarily when web application is * REACTIVE. @@ -87,7 +88,7 @@ public class DecodeTransferMetadataReactiveFilter implements WebFilter, Ordered .getFirst(MetadataConstant.HeaderName.CUSTOM_METADATA); try { if (StringUtils.hasText(customMetadataStr)) { - customMetadataStr = URLDecoder.decode(customMetadataStr, StandardCharsets.UTF_8.name()); + customMetadataStr = URLDecoder.decode(customMetadataStr, UTF_8); } } catch (UnsupportedEncodingException e) { diff --git a/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/DecodeTransferMetadataServletFilter.java b/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/DecodeTransferMetadataServletFilter.java index 10aa7b60f..5aad2c77b 100644 --- a/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/DecodeTransferMetadataServletFilter.java +++ b/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/DecodeTransferMetadataServletFilter.java @@ -21,7 +21,6 @@ package com.tencent.cloud.metadata.core; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.net.URLDecoder; -import java.nio.charset.StandardCharsets; import java.util.HashMap; import java.util.Map; @@ -40,6 +39,8 @@ import org.springframework.core.annotation.Order; import org.springframework.util.StringUtils; import org.springframework.web.filter.OncePerRequestFilter; +import static com.tencent.cloud.common.constant.ContextConstant.UTF_8; + /** * Filter used for storing the metadata from upstream temporarily when web application is * SERVLET. @@ -79,7 +80,7 @@ public class DecodeTransferMetadataServletFilter extends OncePerRequestFilter { .getHeader(MetadataConstant.HeaderName.CUSTOM_METADATA); try { if (StringUtils.hasText(customMetadataStr)) { - customMetadataStr = URLDecoder.decode(customMetadataStr, StandardCharsets.UTF_8.name()); + customMetadataStr = URLDecoder.decode(customMetadataStr, UTF_8); } } catch (UnsupportedEncodingException e) { diff --git a/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/EncodeTransferMedataFeignInterceptor.java b/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/EncodeTransferMedataFeignInterceptor.java index cf889d754..b0ed595e8 100644 --- a/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/EncodeTransferMedataFeignInterceptor.java +++ b/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/EncodeTransferMedataFeignInterceptor.java @@ -20,7 +20,6 @@ package com.tencent.cloud.metadata.core; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; -import java.nio.charset.StandardCharsets; import java.util.Map; import com.tencent.cloud.common.constant.MetadataConstant; @@ -35,6 +34,7 @@ import org.slf4j.LoggerFactory; import org.springframework.core.Ordered; import org.springframework.util.CollectionUtils; +import static com.tencent.cloud.common.constant.ContextConstant.UTF_8; import static com.tencent.cloud.common.constant.MetadataConstant.HeaderName.CUSTOM_METADATA; /** @@ -64,7 +64,7 @@ public class EncodeTransferMedataFeignInterceptor implements RequestInterceptor, requestTemplate.removeHeader(CUSTOM_METADATA); try { requestTemplate.header(CUSTOM_METADATA, - URLEncoder.encode(encodedTransitiveMetadata, StandardCharsets.UTF_8.name())); + URLEncoder.encode(encodedTransitiveMetadata, UTF_8)); } catch (UnsupportedEncodingException e) { LOG.error("Set header failed.", e); diff --git a/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/EncodeTransferMedataRestTemplateInterceptor.java b/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/EncodeTransferMedataRestTemplateInterceptor.java index 9f3a7940f..6a2e9381e 100644 --- a/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/EncodeTransferMedataRestTemplateInterceptor.java +++ b/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/EncodeTransferMedataRestTemplateInterceptor.java @@ -21,7 +21,6 @@ package com.tencent.cloud.metadata.core; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; -import java.nio.charset.StandardCharsets; import java.util.Map; import com.tencent.cloud.common.constant.MetadataConstant; @@ -34,8 +33,11 @@ import org.springframework.http.HttpRequest; import org.springframework.http.client.ClientHttpRequestExecution; import org.springframework.http.client.ClientHttpRequestInterceptor; import org.springframework.http.client.ClientHttpResponse; +import org.springframework.lang.NonNull; import org.springframework.util.CollectionUtils; +import static com.tencent.cloud.common.constant.ContextConstant.UTF_8; + /** * Interceptor used for adding the metadata in http headers from context when web client * is RestTemplate. @@ -51,8 +53,8 @@ public class EncodeTransferMedataRestTemplateInterceptor } @Override - public ClientHttpResponse intercept(HttpRequest httpRequest, byte[] bytes, - ClientHttpRequestExecution clientHttpRequestExecution) throws IOException { + public ClientHttpResponse intercept(@NonNull HttpRequest httpRequest, @NonNull byte[] bytes, + @NonNull ClientHttpRequestExecution clientHttpRequestExecution) throws IOException { // get metadata of current thread MetadataContext metadataContext = MetadataContextHolder.get(); Map customMetadata = metadataContext.getFragmentContext(MetadataContext.FRAGMENT_TRANSITIVE); @@ -61,7 +63,7 @@ public class EncodeTransferMedataRestTemplateInterceptor String encodedTransitiveMetadata = JacksonUtils.serialize2Json(customMetadata); try { httpRequest.getHeaders().set(MetadataConstant.HeaderName.CUSTOM_METADATA, - URLEncoder.encode(encodedTransitiveMetadata, StandardCharsets.UTF_8.name())); + URLEncoder.encode(encodedTransitiveMetadata, UTF_8)); } catch (UnsupportedEncodingException e) { httpRequest.getHeaders().set(MetadataConstant.HeaderName.CUSTOM_METADATA, diff --git a/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/EncodeTransferMedataScgFilter.java b/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/EncodeTransferMedataScgFilter.java index cc3aa2aa1..aed193251 100644 --- a/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/EncodeTransferMedataScgFilter.java +++ b/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/EncodeTransferMedataScgFilter.java @@ -20,7 +20,6 @@ package com.tencent.cloud.metadata.core; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; -import java.nio.charset.StandardCharsets; import java.util.Map; import com.tencent.cloud.common.constant.MetadataConstant; @@ -36,6 +35,7 @@ import org.springframework.http.server.reactive.ServerHttpRequest; import org.springframework.util.CollectionUtils; import org.springframework.web.server.ServerWebExchange; +import static com.tencent.cloud.common.constant.ContextConstant.UTF_8; import static org.springframework.cloud.gateway.filter.LoadBalancerClientFilter.LOAD_BALANCER_CLIENT_FILTER_ORDER; /** @@ -71,7 +71,7 @@ public class EncodeTransferMedataScgFilter implements GlobalFilter, Ordered { String metadataStr = JacksonUtils.serialize2Json(customMetadata); try { builder.header(MetadataConstant.HeaderName.CUSTOM_METADATA, - URLEncoder.encode(metadataStr, StandardCharsets.UTF_8.name())); + URLEncoder.encode(metadataStr, UTF_8)); } catch (UnsupportedEncodingException e) { builder.header(MetadataConstant.HeaderName.CUSTOM_METADATA, metadataStr); diff --git a/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/EncodeTransferMetadataZuulFilter.java b/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/EncodeTransferMetadataZuulFilter.java index bb34a96f6..dd3d34b7b 100644 --- a/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/EncodeTransferMetadataZuulFilter.java +++ b/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/EncodeTransferMetadataZuulFilter.java @@ -20,7 +20,6 @@ package com.tencent.cloud.metadata.core; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; -import java.nio.charset.StandardCharsets; import java.util.Map; import com.netflix.zuul.ZuulFilter; @@ -32,6 +31,7 @@ import com.tencent.cloud.common.util.JacksonUtils; import org.springframework.util.CollectionUtils; +import static com.tencent.cloud.common.constant.ContextConstant.UTF_8; import static org.springframework.cloud.netflix.zuul.filters.support.FilterConstants.RIBBON_ROUTING_FILTER_ORDER; import static org.springframework.cloud.netflix.zuul.filters.support.FilterConstants.ROUTE_TYPE; @@ -72,7 +72,7 @@ public class EncodeTransferMetadataZuulFilter extends ZuulFilter { try { requestContext.addZuulRequestHeader( MetadataConstant.HeaderName.CUSTOM_METADATA, - URLEncoder.encode(metadataStr, StandardCharsets.UTF_8.name())); + URLEncoder.encode(metadataStr, UTF_8)); } catch (UnsupportedEncodingException e) { requestContext.addZuulRequestHeader( diff --git a/spring-cloud-starter-tencent-metadata-transfer/src/test/java/com/tencent/cloud/metadata/core/filter/EncodeTransferMedataScgFilterTest.java b/spring-cloud-starter-tencent-metadata-transfer/src/test/java/com/tencent/cloud/metadata/core/filter/EncodeTransferMedataScgFilterTest.java index bc8a6277e..0cb37485b 100644 --- a/spring-cloud-starter-tencent-metadata-transfer/src/test/java/com/tencent/cloud/metadata/core/filter/EncodeTransferMedataScgFilterTest.java +++ b/spring-cloud-starter-tencent-metadata-transfer/src/test/java/com/tencent/cloud/metadata/core/filter/EncodeTransferMedataScgFilterTest.java @@ -20,7 +20,6 @@ package com.tencent.cloud.metadata.core.filter; import java.io.UnsupportedEncodingException; import java.net.URLDecoder; -import java.nio.charset.StandardCharsets; import java.util.Map; import com.tencent.cloud.common.constant.MetadataConstant; @@ -41,6 +40,7 @@ import org.springframework.mock.http.server.reactive.MockServerHttpRequest; import org.springframework.mock.web.server.MockServerWebExchange; import org.springframework.test.context.junit4.SpringRunner; +import static com.tencent.cloud.common.constant.ContextConstant.UTF_8; import static org.springframework.boot.test.context.SpringBootTest.WebEnvironment.RANDOM_PORT; /** @@ -65,7 +65,7 @@ public class EncodeTransferMedataScgFilterTest { MockServerWebExchange exchange = MockServerWebExchange.from(builder); filter.filter(exchange, chain); String metadataStr = exchange.getRequest().getHeaders().getFirst(MetadataConstant.HeaderName.CUSTOM_METADATA); - String decode = URLDecoder.decode(metadataStr, StandardCharsets.UTF_8.name()); + String decode = URLDecoder.decode(metadataStr, UTF_8); Map transitiveMap = JacksonUtils.deserialize2Map(decode); Assertions.assertThat(transitiveMap.size()).isEqualTo(1); Assert.assertEquals(transitiveMap.get("b"), "2"); diff --git a/spring-cloud-starter-tencent-metadata-transfer/src/test/java/com/tencent/cloud/metadata/core/filter/EncodeTransferMetadataZuulFilterTest.java b/spring-cloud-starter-tencent-metadata-transfer/src/test/java/com/tencent/cloud/metadata/core/filter/EncodeTransferMetadataZuulFilterTest.java index 7cb159e84..c0e3edad3 100644 --- a/spring-cloud-starter-tencent-metadata-transfer/src/test/java/com/tencent/cloud/metadata/core/filter/EncodeTransferMetadataZuulFilterTest.java +++ b/spring-cloud-starter-tencent-metadata-transfer/src/test/java/com/tencent/cloud/metadata/core/filter/EncodeTransferMetadataZuulFilterTest.java @@ -20,7 +20,6 @@ package com.tencent.cloud.metadata.core.filter; import java.io.UnsupportedEncodingException; import java.net.URLDecoder; -import java.nio.charset.StandardCharsets; import java.util.Map; import com.netflix.zuul.context.RequestContext; @@ -40,6 +39,7 @@ import org.springframework.context.ApplicationContext; import org.springframework.mock.web.MockMultipartHttpServletRequest; import org.springframework.test.context.junit4.SpringRunner; +import static com.tencent.cloud.common.constant.ContextConstant.UTF_8; import static org.springframework.boot.test.context.SpringBootTest.WebEnvironment.RANDOM_PORT; /** @@ -71,7 +71,7 @@ public class EncodeTransferMetadataZuulFilterTest { final RequestContext ctx = RequestContext.getCurrentContext(); Map zuulRequestHeaders = ctx.getZuulRequestHeaders(); String metaData = zuulRequestHeaders.get(MetadataConstant.HeaderName.CUSTOM_METADATA.toLowerCase()); - String decode = URLDecoder.decode(metaData, StandardCharsets.UTF_8.name()); + String decode = URLDecoder.decode(metaData, UTF_8); Map transitiveMap = JacksonUtils.deserialize2Map(decode); Assertions.assertThat(transitiveMap.size()).isEqualTo(1); Assert.assertEquals(transitiveMap.get("b"), "2"); diff --git a/spring-cloud-starter-tencent-polaris-circuitbreaker/src/main/java/com/tencent/cloud/polaris/circuitbreaker/config/PolarisCircuitBreakerAutoConfiguration.java b/spring-cloud-starter-tencent-polaris-circuitbreaker/src/main/java/com/tencent/cloud/polaris/circuitbreaker/config/PolarisCircuitBreakerAutoConfiguration.java new file mode 100644 index 000000000..192ee6314 --- /dev/null +++ b/spring-cloud-starter-tencent-polaris-circuitbreaker/src/main/java/com/tencent/cloud/polaris/circuitbreaker/config/PolarisCircuitBreakerAutoConfiguration.java @@ -0,0 +1,105 @@ +/* + * Tencent is pleased to support the open source community by making Spring Cloud Tencent available. + * + * Copyright (C) 2019 THL A29 Limited, a Tencent company. All rights reserved. + * + * Licensed under the BSD 3-Clause License (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://opensource.org/licenses/BSD-3-Clause + * + * Unless required by applicable law or agreed to in writing, software distributed + * under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR + * CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + */ + +package com.tencent.cloud.polaris.circuitbreaker.config; + +import com.tencent.cloud.polaris.circuitbreaker.feign.PolarisFeignBeanPostProcessor; +import com.tencent.cloud.polaris.circuitbreaker.resttemplate.PolarisResponseErrorHandler; +import com.tencent.cloud.polaris.circuitbreaker.resttemplate.PolarisRestTemplateModifier; +import com.tencent.cloud.polaris.circuitbreaker.resttemplate.PolarisRestTemplateResponseErrorHandler; +import com.tencent.cloud.polaris.context.PolarisContextAutoConfiguration; +import com.tencent.polaris.api.core.ConsumerAPI; +import com.tencent.polaris.client.api.SDKContext; +import com.tencent.polaris.factory.api.DiscoveryAPIFactory; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.autoconfigure.AutoConfigureAfter; +import org.springframework.boot.autoconfigure.AutoConfigureBefore; +import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; +import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; +import org.springframework.cloud.openfeign.FeignAutoConfiguration; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.core.annotation.Order; +import org.springframework.web.client.RestTemplate; + +import static org.springframework.core.Ordered.HIGHEST_PRECEDENCE; + +/** + * Auto Configuration for Polaris {@link feign.Feign} OR {@link RestTemplate} which can automatically bring in the call + * results for reporting. + * + * @author Palmer.Xu 2022-06-29 + */ +@Configuration(proxyBeanMethods = false) +public class PolarisCircuitBreakerAutoConfiguration { + + /** + * Configuration for Polaris {@link feign.Feign} which can automatically bring in the call + * results for reporting. + * + * @author Haotian Zhang + */ + @Configuration(proxyBeanMethods = false) + @ConditionalOnClass(name = "org.springframework.cloud.openfeign.FeignAutoConfiguration") + @AutoConfigureAfter(PolarisContextAutoConfiguration.class) + @AutoConfigureBefore(FeignAutoConfiguration.class) + @ConditionalOnProperty(value = "spring.cloud.polaris.circuitbreaker.enabled", havingValue = "true", matchIfMissing = true) + protected static class PolarisFeignClientAutoConfiguration { + + @Bean + public ConsumerAPI consumerAPI(SDKContext context) { + return DiscoveryAPIFactory.createConsumerAPIByContext(context); + } + + @Bean + @Order(HIGHEST_PRECEDENCE) + public PolarisFeignBeanPostProcessor polarisFeignBeanPostProcessor(ConsumerAPI consumerAPI) { + return new PolarisFeignBeanPostProcessor(consumerAPI); + } + + } + + /** + * Configuration for Polaris {@link RestTemplate} which can automatically bring in the call + * results for reporting. + * + * @author wh 2022/6/21 + */ + @Configuration(proxyBeanMethods = false) + @AutoConfigureAfter(PolarisContextAutoConfiguration.class) + @ConditionalOnProperty(value = "spring.cloud.polaris.circuitbreaker.enabled", havingValue = "true", matchIfMissing = true) + protected static class PolarisRestTemplateAutoConfiguration { + + @Bean + @ConditionalOnBean(RestTemplate.class) + public PolarisRestTemplateResponseErrorHandler polarisRestTemplateResponseErrorHandler( + ConsumerAPI consumerAPI, @Autowired(required = false) PolarisResponseErrorHandler polarisResponseErrorHandler) { + return new PolarisRestTemplateResponseErrorHandler(consumerAPI, polarisResponseErrorHandler); + } + + @Bean + @ConditionalOnBean(RestTemplate.class) + public PolarisRestTemplateModifier polarisRestTemplateBeanPostProcessor( + PolarisRestTemplateResponseErrorHandler restTemplateResponseErrorHandler) { + return new PolarisRestTemplateModifier(restTemplateResponseErrorHandler); + } + + } + +} diff --git a/spring-cloud-starter-tencent-polaris-circuitbreaker/src/main/java/com/tencent/cloud/polaris/circuitbreaker/config/PolarisCircuitBreakerBootstrapConfiguration.java b/spring-cloud-starter-tencent-polaris-circuitbreaker/src/main/java/com/tencent/cloud/polaris/circuitbreaker/config/PolarisCircuitBreakerBootstrapConfiguration.java index 393c0ea7d..8c47fa7c5 100644 --- a/spring-cloud-starter-tencent-polaris-circuitbreaker/src/main/java/com/tencent/cloud/polaris/circuitbreaker/config/PolarisCircuitBreakerBootstrapConfiguration.java +++ b/spring-cloud-starter-tencent-polaris-circuitbreaker/src/main/java/com/tencent/cloud/polaris/circuitbreaker/config/PolarisCircuitBreakerBootstrapConfiguration.java @@ -33,10 +33,9 @@ import org.springframework.context.annotation.Configuration; * * @author lepdou 2022-03-29 */ -@ConditionalOnPolarisEnabled -@ConditionalOnProperty(value = "spring.cloud.polaris.circuitbreaker.enabled", - havingValue = "true", matchIfMissing = true) @Configuration(proxyBeanMethods = false) +@ConditionalOnPolarisEnabled +@ConditionalOnProperty(value = "spring.cloud.polaris.circuitbreaker.enabled", havingValue = "true", matchIfMissing = true) public class PolarisCircuitBreakerBootstrapConfiguration { @Bean diff --git a/spring-cloud-starter-tencent-polaris-circuitbreaker/src/main/java/com/tencent/cloud/polaris/circuitbreaker/config/PolarisFeignClientAutoConfiguration.java b/spring-cloud-starter-tencent-polaris-circuitbreaker/src/main/java/com/tencent/cloud/polaris/circuitbreaker/config/PolarisFeignClientAutoConfiguration.java deleted file mode 100644 index ae699dead..000000000 --- a/spring-cloud-starter-tencent-polaris-circuitbreaker/src/main/java/com/tencent/cloud/polaris/circuitbreaker/config/PolarisFeignClientAutoConfiguration.java +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Tencent is pleased to support the open source community by making Spring Cloud Tencent available. - * - * Copyright (C) 2019 THL A29 Limited, a Tencent company. All rights reserved. - * - * Licensed under the BSD 3-Clause License (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://opensource.org/licenses/BSD-3-Clause - * - * Unless required by applicable law or agreed to in writing, software distributed - * under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR - * CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package com.tencent.cloud.polaris.circuitbreaker.config; - -import com.tencent.cloud.polaris.circuitbreaker.feign.PolarisFeignBeanPostProcessor; -import com.tencent.cloud.polaris.context.PolarisContextAutoConfiguration; -import com.tencent.polaris.api.core.ConsumerAPI; -import com.tencent.polaris.client.api.SDKContext; -import com.tencent.polaris.factory.api.DiscoveryAPIFactory; - -import org.springframework.boot.autoconfigure.AutoConfigureAfter; -import org.springframework.boot.autoconfigure.AutoConfigureBefore; -import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; -import org.springframework.cloud.openfeign.FeignAutoConfiguration; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.core.annotation.Order; - -import static org.springframework.core.Ordered.HIGHEST_PRECEDENCE; - -/** - * Configuration for Polaris {@link feign.Feign} which can automatically bring in the call - * results for reporting. - * - * @author Haotian Zhang - */ -@ConditionalOnProperty(value = "spring.cloud.polaris.circuitbreaker.enabled", havingValue = "true", matchIfMissing = true) -@Configuration(proxyBeanMethods = false) -@ConditionalOnClass(name = "org.springframework.cloud.openfeign.FeignAutoConfiguration") -@AutoConfigureAfter(PolarisContextAutoConfiguration.class) -@AutoConfigureBefore(FeignAutoConfiguration.class) -public class PolarisFeignClientAutoConfiguration { - - @Bean - public ConsumerAPI consumerAPI(SDKContext context) { - return DiscoveryAPIFactory.createConsumerAPIByContext(context); - } - - @Bean - @Order(HIGHEST_PRECEDENCE) - public PolarisFeignBeanPostProcessor polarisFeignBeanPostProcessor(ConsumerAPI consumerAPI) { - return new PolarisFeignBeanPostProcessor(consumerAPI); - } - -} diff --git a/spring-cloud-starter-tencent-polaris-circuitbreaker/src/main/java/com/tencent/cloud/polaris/circuitbreaker/config/PolarisRestTemplateAutoConfiguration.java b/spring-cloud-starter-tencent-polaris-circuitbreaker/src/main/java/com/tencent/cloud/polaris/circuitbreaker/config/PolarisRestTemplateAutoConfiguration.java deleted file mode 100644 index ea99fce36..000000000 --- a/spring-cloud-starter-tencent-polaris-circuitbreaker/src/main/java/com/tencent/cloud/polaris/circuitbreaker/config/PolarisRestTemplateAutoConfiguration.java +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Tencent is pleased to support the open source community by making Spring Cloud Tencent available. - * - * Copyright (C) 2019 THL A29 Limited, a Tencent company. All rights reserved. - * - * Licensed under the BSD 3-Clause License (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://opensource.org/licenses/BSD-3-Clause - * - * Unless required by applicable law or agreed to in writing, software distributed - * under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR - * CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package com.tencent.cloud.polaris.circuitbreaker.config; - -import com.tencent.cloud.polaris.circuitbreaker.resttemplate.PolarisResponseErrorHandler; -import com.tencent.cloud.polaris.circuitbreaker.resttemplate.PolarisRestTemplateModifier; -import com.tencent.cloud.polaris.circuitbreaker.resttemplate.PolarisRestTemplateResponseErrorHandler; -import com.tencent.cloud.polaris.context.PolarisContextAutoConfiguration; -import com.tencent.polaris.api.core.ConsumerAPI; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.autoconfigure.AutoConfigureAfter; -import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.web.client.RestTemplate; - -/** - * @author : wh - * @date : 2022/6/21 21:34 - * @description: Auto configuration PolarisRestTemplateAutoConfiguration - */ -@ConditionalOnProperty(value = "spring.cloud.polaris.circuitbreaker.enabled", - havingValue = "true", matchIfMissing = true) -@Configuration(proxyBeanMethods = false) -@AutoConfigureAfter(PolarisContextAutoConfiguration.class) -public class PolarisRestTemplateAutoConfiguration { - - @Bean - @ConditionalOnBean(RestTemplate.class) - public PolarisRestTemplateResponseErrorHandler polarisRestTemplateResponseErrorHandler(ConsumerAPI consumerAPI, @Autowired(required = false) PolarisResponseErrorHandler polarisResponseErrorHandler) { - return new PolarisRestTemplateResponseErrorHandler(consumerAPI, polarisResponseErrorHandler); - } - - @Bean - @ConditionalOnBean(RestTemplate.class) - public PolarisRestTemplateModifier polarisRestTemplateBeanPostProcessor(PolarisRestTemplateResponseErrorHandler restTemplateResponseErrorHandler) { - return new PolarisRestTemplateModifier(restTemplateResponseErrorHandler); - } -} diff --git a/spring-cloud-starter-tencent-polaris-circuitbreaker/src/main/resources/META-INF/spring.factories b/spring-cloud-starter-tencent-polaris-circuitbreaker/src/main/resources/META-INF/spring.factories index 229cc2af0..0fef7feca 100644 --- a/spring-cloud-starter-tencent-polaris-circuitbreaker/src/main/resources/META-INF/spring.factories +++ b/spring-cloud-starter-tencent-polaris-circuitbreaker/src/main/resources/META-INF/spring.factories @@ -1,6 +1,5 @@ org.springframework.cloud.bootstrap.BootstrapConfiguration=\ com.tencent.cloud.polaris.circuitbreaker.config.PolarisCircuitBreakerBootstrapConfiguration org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ - com.tencent.cloud.polaris.circuitbreaker.config.PolarisFeignClientAutoConfiguration,\ - com.tencent.cloud.polaris.circuitbreaker.config.PolarisRestTemplateAutoConfiguration + com.tencent.cloud.polaris.circuitbreaker.config.PolarisCircuitBreakerAutoConfiguration diff --git a/spring-cloud-starter-tencent-polaris-circuitbreaker/src/test/java/com/tencent/cloud/polaris/circuitbreaker/PolarisFeignClientAutoConfigurationTest.java b/spring-cloud-starter-tencent-polaris-circuitbreaker/src/test/java/com/tencent/cloud/polaris/circuitbreaker/PolarisFeignClientAutoConfigurationTest.java index 2443949c9..90bf3260f 100644 --- a/spring-cloud-starter-tencent-polaris-circuitbreaker/src/test/java/com/tencent/cloud/polaris/circuitbreaker/PolarisFeignClientAutoConfigurationTest.java +++ b/spring-cloud-starter-tencent-polaris-circuitbreaker/src/test/java/com/tencent/cloud/polaris/circuitbreaker/PolarisFeignClientAutoConfigurationTest.java @@ -17,7 +17,7 @@ package com.tencent.cloud.polaris.circuitbreaker; -import com.tencent.cloud.polaris.circuitbreaker.config.PolarisFeignClientAutoConfiguration; +import com.tencent.cloud.polaris.circuitbreaker.config.PolarisCircuitBreakerAutoConfiguration; import com.tencent.cloud.polaris.circuitbreaker.feign.PolarisFeignBeanPostProcessor; import com.tencent.cloud.polaris.context.PolarisContextAutoConfiguration; import com.tencent.polaris.api.core.ConsumerAPI; @@ -29,17 +29,17 @@ import org.springframework.boot.test.context.runner.ApplicationContextRunner; import static org.assertj.core.api.Assertions.assertThat; /** - * Test for {@link PolarisFeignClientAutoConfiguration}. + * Test for {@link PolarisCircuitBreakerAutoConfiguration}. * * @author Haotian Zhang */ public class PolarisFeignClientAutoConfigurationTest { - private ApplicationContextRunner contextRunner = new ApplicationContextRunner() + private final ApplicationContextRunner contextRunner = new ApplicationContextRunner() .withConfiguration( AutoConfigurations.of( PolarisContextAutoConfiguration.class, - PolarisFeignClientAutoConfiguration.class)) + PolarisCircuitBreakerAutoConfiguration.class)) .withPropertyValues("spring.cloud.polaris.circuitbreaker.enabled=true"); @Test diff --git a/spring-cloud-starter-tencent-polaris-config/src/main/java/com/tencent/cloud/polaris/config/PolarisConfigAutoConfiguration.java b/spring-cloud-starter-tencent-polaris-config/src/main/java/com/tencent/cloud/polaris/config/PolarisConfigAutoConfiguration.java index cccea11bc..8a093fdcc 100644 --- a/spring-cloud-starter-tencent-polaris-config/src/main/java/com/tencent/cloud/polaris/config/PolarisConfigAutoConfiguration.java +++ b/spring-cloud-starter-tencent-polaris-config/src/main/java/com/tencent/cloud/polaris/config/PolarisConfigAutoConfiguration.java @@ -37,8 +37,7 @@ import org.springframework.context.annotation.Configuration; */ @Configuration(proxyBeanMethods = false) @ConditionalOnPolarisEnabled -@ConditionalOnProperty(value = "spring.cloud.polaris.config.enabled", - matchIfMissing = true) +@ConditionalOnProperty(value = "spring.cloud.polaris.config.enabled", matchIfMissing = true) public class PolarisConfigAutoConfiguration { @Bean diff --git a/spring-cloud-starter-tencent-polaris-config/src/main/java/com/tencent/cloud/polaris/config/PolarisConfigBootstrapAutoConfiguration.java b/spring-cloud-starter-tencent-polaris-config/src/main/java/com/tencent/cloud/polaris/config/PolarisConfigBootstrapAutoConfiguration.java index 101ca4a35..0a87c0e65 100644 --- a/spring-cloud-starter-tencent-polaris-config/src/main/java/com/tencent/cloud/polaris/config/PolarisConfigBootstrapAutoConfiguration.java +++ b/spring-cloud-starter-tencent-polaris-config/src/main/java/com/tencent/cloud/polaris/config/PolarisConfigBootstrapAutoConfiguration.java @@ -40,8 +40,7 @@ import org.springframework.core.env.Environment; */ @Configuration(proxyBeanMethods = false) @ConditionalOnPolarisEnabled -@ConditionalOnProperty(value = "spring.cloud.polaris.config.enabled", - matchIfMissing = true) +@ConditionalOnProperty(value = "spring.cloud.polaris.config.enabled", matchIfMissing = true) @Import(PolarisContextAutoConfiguration.class) public class PolarisConfigBootstrapAutoConfiguration { diff --git a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/DiscoveryPropertiesAutoConfiguration.java b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/DiscoveryPropertiesAutoConfiguration.java index d0129afc0..1f86e0cb0 100644 --- a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/DiscoveryPropertiesAutoConfiguration.java +++ b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/DiscoveryPropertiesAutoConfiguration.java @@ -15,9 +15,8 @@ * specific language governing permissions and limitations under the License. * */ -package com.tencent.cloud.polaris; -import javax.annotation.PostConstruct; +package com.tencent.cloud.polaris; import com.tencent.cloud.polaris.context.ConditionalOnPolarisEnabled; import com.tencent.cloud.polaris.discovery.PolarisDiscoveryHandler; @@ -28,7 +27,6 @@ import com.tencent.polaris.api.exception.PolarisException; import com.tencent.polaris.client.api.SDKContext; import com.tencent.polaris.factory.api.DiscoveryAPIFactory; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -41,19 +39,9 @@ import org.springframework.context.annotation.Import; */ @Configuration(proxyBeanMethods = false) @ConditionalOnPolarisEnabled -@Import({ PolarisDiscoveryProperties.class, ConsulContextProperties.class }) +@Import({PolarisDiscoveryProperties.class, ConsulContextProperties.class}) public class DiscoveryPropertiesAutoConfiguration { - @Autowired(required = false) - private PolarisDiscoveryProperties polarisDiscoveryProperties; - - @Autowired(required = false) - private ConsulContextProperties consulContextProperties; - - private boolean registerEnabled = false; - - private boolean discoveryEnabled = false; - @Bean @ConditionalOnMissingBean public ProviderAPI polarisProvider(SDKContext polarisContext) @@ -79,24 +67,4 @@ public class DiscoveryPropertiesAutoConfiguration { return new DiscoveryConfigModifier(); } - @PostConstruct - public void init() { - if (null != polarisDiscoveryProperties) { - registerEnabled |= polarisDiscoveryProperties.isRegisterEnabled(); - discoveryEnabled |= polarisDiscoveryProperties.isEnabled(); - } - if (null != consulContextProperties && consulContextProperties.isEnabled()) { - registerEnabled |= consulContextProperties.isRegister(); - discoveryEnabled |= consulContextProperties.isDiscoveryEnabled(); - } - } - - public boolean isRegisterEnabled() { - return registerEnabled; - } - - public boolean isDiscoveryEnabled() { - return discoveryEnabled; - } - } diff --git a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/PolarisDiscoveryProperties.java b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/PolarisDiscoveryProperties.java index 2de7d0140..a10e123d3 100644 --- a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/PolarisDiscoveryProperties.java +++ b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/PolarisDiscoveryProperties.java @@ -29,7 +29,6 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.context.annotation.Bean; -import org.springframework.core.env.Environment; /** * Properties for Polaris. @@ -107,9 +106,6 @@ public class PolarisDiscoveryProperties { */ private Long serviceListRefreshInterval = 60000L; - @Autowired - private Environment environment; - public boolean isHeartbeatEnabled() { return heartbeatEnabled; } @@ -232,7 +228,7 @@ public class PolarisDiscoveryProperties { private static class PolarisDiscoveryConfigModifier implements PolarisConfigModifier { - private final String ID = "polaris"; + private static final String ID = "polaris"; @Autowired(required = false) private PolarisDiscoveryProperties polarisDiscoveryProperties; diff --git a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/extend/consul/ConsulContextProperties.java b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/extend/consul/ConsulContextProperties.java index 2efbd93d6..7bb75b95e 100644 --- a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/extend/consul/ConsulContextProperties.java +++ b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/extend/consul/ConsulContextProperties.java @@ -113,7 +113,7 @@ public class ConsulContextProperties { private static class ConsulConfigModifier implements PolarisConfigModifier { - private final String ID = "consul"; + private static final String ID = "consul"; @Autowired(required = false) private ConsulContextProperties consulContextProperties; diff --git a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/PolarisRegistration.java b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/PolarisRegistration.java index 20cfcf6ed..8572a0c4e 100644 --- a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/PolarisRegistration.java +++ b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/PolarisRegistration.java @@ -24,31 +24,32 @@ import java.util.HashMap; import java.util.Map; import com.tencent.cloud.common.metadata.StaticMetadataManager; -import com.tencent.cloud.polaris.DiscoveryPropertiesAutoConfiguration; import com.tencent.cloud.polaris.PolarisDiscoveryProperties; import com.tencent.cloud.polaris.context.spi.InstanceMetadataProvider; +import com.tencent.cloud.polaris.extend.consul.ConsulContextProperties; import com.tencent.polaris.client.api.SDKContext; import org.apache.commons.lang.StringUtils; import org.springframework.cloud.client.DefaultServiceInstance; import org.springframework.cloud.client.ServiceInstance; import org.springframework.cloud.client.serviceregistry.Registration; +import org.springframework.lang.Nullable; import org.springframework.util.CollectionUtils; /** * Registration object of Polaris. * - * @author Haotian Zhang, Andrew Shan, Jie Cheng + * @author Haotian Zhang, Andrew Shan, Jie Cheng, Palmer.Xu */ public class PolarisRegistration implements Registration, ServiceInstance { private final static String METADATA_KEY_IP = "internal-ip"; private final static String METADATA_KEY_ADDRESS = "internal-address"; - private final DiscoveryPropertiesAutoConfiguration discoveryPropertiesAutoConfiguration; - private final PolarisDiscoveryProperties polarisDiscoveryProperties; + private final ConsulContextProperties consulContextProperties; + private final SDKContext polarisContext; private final StaticMetadataManager staticMetadataManager; @@ -60,12 +61,12 @@ public class PolarisRegistration implements Registration, ServiceInstance { private final String host; public PolarisRegistration( - DiscoveryPropertiesAutoConfiguration discoveryPropertiesAutoConfiguration, - PolarisDiscoveryProperties polarisDiscoveryProperties, SDKContext context, - StaticMetadataManager staticMetadataManager, + PolarisDiscoveryProperties polarisDiscoveryProperties, + @Nullable ConsulContextProperties consulContextProperties, + SDKContext context, StaticMetadataManager staticMetadataManager, InstanceMetadataProvider instanceMetadataProvider) { - this.discoveryPropertiesAutoConfiguration = discoveryPropertiesAutoConfiguration; this.polarisDiscoveryProperties = polarisDiscoveryProperties; + this.consulContextProperties = consulContextProperties; this.polarisContext = context; this.staticMetadataManager = staticMetadataManager; this.instanceMetadataProvider = instanceMetadataProvider; @@ -94,8 +95,7 @@ public class PolarisRegistration implements Registration, ServiceInstance { @Override public boolean isSecure() { - return StringUtils.equalsIgnoreCase(polarisDiscoveryProperties.getProtocol(), - "https"); + return StringUtils.equalsIgnoreCase(polarisDiscoveryProperties.getProtocol(), "https"); } @Override @@ -144,17 +144,27 @@ public class PolarisRegistration implements Registration, ServiceInstance { } public boolean isRegisterEnabled() { - return discoveryPropertiesAutoConfiguration.isRegisterEnabled(); + + boolean registerEnabled = false; + + if (null != polarisDiscoveryProperties) { + registerEnabled |= polarisDiscoveryProperties.isRegisterEnabled(); + } + if (null != consulContextProperties && consulContextProperties.isEnabled()) { + registerEnabled |= consulContextProperties.isRegister(); + } + + return registerEnabled; } @Override public String toString() { return "PolarisRegistration{" + - "discoveryPropertiesAutoConfiguration=" + discoveryPropertiesAutoConfiguration + - ", polarisDiscoveryProperties=" + polarisDiscoveryProperties + + "polarisDiscoveryProperties=" + polarisDiscoveryProperties + ", polarisContext=" + polarisContext + ", staticMetadataManager=" + staticMetadataManager + ", metadata=" + metadata + '}'; } + } diff --git a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/PolarisServiceRegistryAutoConfiguration.java b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/PolarisServiceRegistryAutoConfiguration.java index e868996d5..f7c99384f 100644 --- a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/PolarisServiceRegistryAutoConfiguration.java +++ b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/PolarisServiceRegistryAutoConfiguration.java @@ -19,13 +19,14 @@ package com.tencent.cloud.polaris.registry; import com.tencent.cloud.common.metadata.StaticMetadataManager; -import com.tencent.cloud.polaris.DiscoveryPropertiesAutoConfiguration; import com.tencent.cloud.polaris.PolarisDiscoveryProperties; import com.tencent.cloud.polaris.context.spi.InstanceMetadataProvider; import com.tencent.cloud.polaris.discovery.PolarisDiscoveryAutoConfiguration; import com.tencent.cloud.polaris.discovery.PolarisDiscoveryHandler; +import com.tencent.cloud.polaris.extend.consul.ConsulContextProperties; import com.tencent.polaris.client.api.SDKContext; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; @@ -61,12 +62,11 @@ public class PolarisServiceRegistryAutoConfiguration { @Bean @ConditionalOnBean(AutoServiceRegistrationProperties.class) - public PolarisRegistration polarisRegistration( - DiscoveryPropertiesAutoConfiguration discoveryPropertiesAutoConfiguration, - PolarisDiscoveryProperties polarisDiscoveryProperties, SDKContext context, + public PolarisRegistration polarisRegistration(PolarisDiscoveryProperties polarisDiscoveryProperties, + @Autowired(required = false) ConsulContextProperties consulContextProperties, SDKContext context, StaticMetadataManager staticMetadataManager, @Nullable InstanceMetadataProvider instanceMetadataProvider) { - return new PolarisRegistration(discoveryPropertiesAutoConfiguration, - polarisDiscoveryProperties, context, staticMetadataManager, instanceMetadataProvider); + return new PolarisRegistration(polarisDiscoveryProperties, consulContextProperties, + context, staticMetadataManager, instanceMetadataProvider); } @Bean diff --git a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/ribbon/PolarisRibbonServerListConfiguration.java b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/ribbon/PolarisRibbonServerListConfiguration.java index f79bd2dba..7a86a05c7 100644 --- a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/ribbon/PolarisRibbonServerListConfiguration.java +++ b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/ribbon/PolarisRibbonServerListConfiguration.java @@ -24,14 +24,12 @@ import com.tencent.cloud.polaris.discovery.PolarisDiscoveryHandler; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; /** * Configuration of server list. * * @author Haotian Zhang, Andrew Shan, Jie Cheng */ -@Configuration public class PolarisRibbonServerListConfiguration { @Bean diff --git a/spring-cloud-starter-tencent-polaris-discovery/src/test/java/com/tencent/cloud/polaris/DiscoveryPropertiesAutoConfigurationTest.java b/spring-cloud-starter-tencent-polaris-discovery/src/test/java/com/tencent/cloud/polaris/DiscoveryPropertiesAutoConfigurationTest.java index b75d16d93..4fa36522f 100644 --- a/spring-cloud-starter-tencent-polaris-discovery/src/test/java/com/tencent/cloud/polaris/DiscoveryPropertiesAutoConfigurationTest.java +++ b/spring-cloud-starter-tencent-polaris-discovery/src/test/java/com/tencent/cloud/polaris/DiscoveryPropertiesAutoConfigurationTest.java @@ -52,23 +52,7 @@ public class DiscoveryPropertiesAutoConfigurationTest { assertThat(context).hasSingleBean(PolarisDiscoveryHandler.class); assertThat(context).hasSingleBean(DiscoveryConfigModifier.class); }); - } - @Test - public void testInit() { - ApplicationContextRunner applicationContextRunner = new ApplicationContextRunner().withConfiguration( - AutoConfigurations.of(PolarisContextAutoConfiguration.class, - TestConfiguration.class, - DiscoveryPropertiesAutoConfiguration.class)) - .withPropertyValues("spring.cloud.polaris.discovery.register=false") - .withPropertyValues("spring.cloud.consul.discovery.register=false") - .withPropertyValues("spring.cloud.consul.discovery.enabled=false"); - applicationContextRunner.run(context -> { - assertThat(context).hasSingleBean(DiscoveryPropertiesAutoConfiguration.class); - DiscoveryPropertiesAutoConfiguration discoveryPropertiesAutoConfiguration = context.getBean(DiscoveryPropertiesAutoConfiguration.class); - assertThat(discoveryPropertiesAutoConfiguration.isRegisterEnabled()).isFalse(); - assertThat(discoveryPropertiesAutoConfiguration.isDiscoveryEnabled()).isFalse(); - }); } @Configuration @@ -86,5 +70,7 @@ public class DiscoveryPropertiesAutoConfigurationTest { consulContextProperties.setEnabled(true); return consulContextProperties; } + } + } diff --git a/spring-cloud-starter-tencent-polaris-discovery/src/test/java/com/tencent/cloud/polaris/registry/PolarisRegistrationTest.java b/spring-cloud-starter-tencent-polaris-discovery/src/test/java/com/tencent/cloud/polaris/registry/PolarisRegistrationTest.java index 11d380a75..83f1f5a0b 100644 --- a/spring-cloud-starter-tencent-polaris-discovery/src/test/java/com/tencent/cloud/polaris/registry/PolarisRegistrationTest.java +++ b/spring-cloud-starter-tencent-polaris-discovery/src/test/java/com/tencent/cloud/polaris/registry/PolarisRegistrationTest.java @@ -21,8 +21,8 @@ import java.util.Collections; import java.util.Map; import com.tencent.cloud.common.metadata.StaticMetadataManager; -import com.tencent.cloud.polaris.DiscoveryPropertiesAutoConfiguration; import com.tencent.cloud.polaris.PolarisDiscoveryProperties; +import com.tencent.cloud.polaris.extend.consul.ConsulContextProperties; import com.tencent.polaris.api.config.Configuration; import com.tencent.polaris.api.config.global.APIConfig; import com.tencent.polaris.api.config.global.GlobalConfig; @@ -51,16 +51,15 @@ public class PolarisRegistrationTest { @Before public void setUp() { - // mock DiscoveryPropertiesAutoConfiguration - DiscoveryPropertiesAutoConfiguration discoveryPropertiesAutoConfiguration = - mock(DiscoveryPropertiesAutoConfiguration.class); - doReturn(true).when(discoveryPropertiesAutoConfiguration).isRegisterEnabled(); - // mock PolarisDiscoveryProperties PolarisDiscoveryProperties polarisDiscoveryProperties = mock(PolarisDiscoveryProperties.class); doReturn(SERVICE_PROVIDER).when(polarisDiscoveryProperties).getService(); doReturn(PORT).when(polarisDiscoveryProperties).getPort(); doReturn("http").when(polarisDiscoveryProperties).getProtocol(); + doReturn(true).when(polarisDiscoveryProperties).isRegisterEnabled(); + + // mock + ConsulContextProperties consulContextProperties = mock(ConsulContextProperties.class); // mock SDKContext APIConfig apiConfig = mock(APIConfig.class); @@ -77,8 +76,8 @@ public class PolarisRegistrationTest { doReturn(Collections.singletonMap("key1", "value1")).when(staticMetadataManager).getMergedStaticMetadata(); doReturn(Collections.singletonMap("key2", "value2")).when(staticMetadataManager).getLocationMetadata(); - polarisRegistration = new PolarisRegistration( - discoveryPropertiesAutoConfiguration, polarisDiscoveryProperties, polarisContext, staticMetadataManager, null); + polarisRegistration = new PolarisRegistration(polarisDiscoveryProperties, consulContextProperties, + polarisContext, staticMetadataManager, null); } @Test diff --git a/spring-cloud-starter-tencent-polaris-discovery/src/test/java/com/tencent/cloud/polaris/ribbon/PolarisRibbonServerListConfigurationTest.java b/spring-cloud-starter-tencent-polaris-discovery/src/test/java/com/tencent/cloud/polaris/ribbon/PolarisRibbonServerListConfigurationTest.java index 277555901..8d2d286fc 100644 --- a/spring-cloud-starter-tencent-polaris-discovery/src/test/java/com/tencent/cloud/polaris/ribbon/PolarisRibbonServerListConfigurationTest.java +++ b/spring-cloud-starter-tencent-polaris-discovery/src/test/java/com/tencent/cloud/polaris/ribbon/PolarisRibbonServerListConfigurationTest.java @@ -37,7 +37,7 @@ import static org.assertj.core.api.Assertions.assertThat; */ public class PolarisRibbonServerListConfigurationTest { - private ApplicationContextRunner applicationContextRunner = new ApplicationContextRunner(); + private final ApplicationContextRunner applicationContextRunner = new ApplicationContextRunner(); @Test public void testDefaultInitialization() { diff --git a/spring-cloud-starter-tencent-polaris-ratelimit/src/main/java/com/tencent/cloud/polaris/ratelimit/config/PolarisRateLimitAutoConfiguration.java b/spring-cloud-starter-tencent-polaris-ratelimit/src/main/java/com/tencent/cloud/polaris/ratelimit/config/PolarisRateLimitAutoConfiguration.java index 01dd591dc..4be380bf8 100644 --- a/spring-cloud-starter-tencent-polaris-ratelimit/src/main/java/com/tencent/cloud/polaris/ratelimit/config/PolarisRateLimitAutoConfiguration.java +++ b/spring-cloud-starter-tencent-polaris-ratelimit/src/main/java/com/tencent/cloud/polaris/ratelimit/config/PolarisRateLimitAutoConfiguration.java @@ -40,6 +40,7 @@ import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.lang.Nullable; +import static com.tencent.cloud.polaris.ratelimit.filter.QuotaCheckServletFilter.QUOTA_FILTER_BEAN_NAME; import static javax.servlet.DispatcherType.ASYNC; import static javax.servlet.DispatcherType.ERROR; import static javax.servlet.DispatcherType.FORWARD; @@ -51,7 +52,7 @@ import static javax.servlet.DispatcherType.REQUEST; * * @author Haotian Zhang */ -@Configuration +@Configuration(proxyBeanMethods = false) @ConditionalOnPolarisEnabled @AutoConfigureAfter(PolarisContextAutoConfiguration.class) @ConditionalOnProperty(name = "spring.cloud.polaris.ratelimit.enabled", matchIfMissing = true) @@ -71,9 +72,9 @@ public class PolarisRateLimitAutoConfiguration { /** * Create when web application type is SERVLET. */ - @Configuration + @Configuration(proxyBeanMethods = false) @ConditionalOnWebApplication(type = ConditionalOnWebApplication.Type.SERVLET) - static class QuotaCheckFilterConfig { + protected static class QuotaCheckFilterConfig { @Bean @ConditionalOnMissingBean @@ -91,7 +92,7 @@ public class PolarisRateLimitAutoConfiguration { FilterRegistrationBean registrationBean = new FilterRegistrationBean<>( quotaCheckServletFilter); registrationBean.setDispatcherTypes(ASYNC, ERROR, FORWARD, INCLUDE, REQUEST); - registrationBean.setName("quotaFilterRegistrationBean"); + registrationBean.setName(QUOTA_FILTER_BEAN_NAME); registrationBean.setOrder(RateLimitConstant.FILTER_ORDER); return registrationBean; } @@ -101,9 +102,9 @@ public class PolarisRateLimitAutoConfiguration { /** * Create when web application type is REACTIVE. */ - @Configuration + @Configuration(proxyBeanMethods = false) @ConditionalOnWebApplication(type = ConditionalOnWebApplication.Type.REACTIVE) - static class MetadataReactiveFilterConfig { + protected static class MetadataReactiveFilterConfig { @Bean public QuotaCheckReactiveFilter quotaCheckReactiveFilter(LimitAPI limitAPI, diff --git a/spring-cloud-starter-tencent-polaris-ratelimit/src/main/java/com/tencent/cloud/polaris/ratelimit/config/PolarisRateLimitPropertiesAutoConfiguration.java b/spring-cloud-starter-tencent-polaris-ratelimit/src/main/java/com/tencent/cloud/polaris/ratelimit/config/PolarisRateLimitPropertiesAutoConfiguration.java index e00d6f635..f555c3c2c 100644 --- a/spring-cloud-starter-tencent-polaris-ratelimit/src/main/java/com/tencent/cloud/polaris/ratelimit/config/PolarisRateLimitPropertiesAutoConfiguration.java +++ b/spring-cloud-starter-tencent-polaris-ratelimit/src/main/java/com/tencent/cloud/polaris/ratelimit/config/PolarisRateLimitPropertiesAutoConfiguration.java @@ -39,4 +39,5 @@ public class PolarisRateLimitPropertiesAutoConfiguration { public RateLimitConfigModifier rateLimitConfigModifier(PolarisRateLimitProperties polarisRateLimitProperties) { return new RateLimitConfigModifier(polarisRateLimitProperties); } + } diff --git a/spring-cloud-starter-tencent-polaris-ratelimit/src/main/java/com/tencent/cloud/polaris/ratelimit/config/RateLimitConfigModifier.java b/spring-cloud-starter-tencent-polaris-ratelimit/src/main/java/com/tencent/cloud/polaris/ratelimit/config/RateLimitConfigModifier.java index b0c097a68..9f0223689 100644 --- a/spring-cloud-starter-tencent-polaris-ratelimit/src/main/java/com/tencent/cloud/polaris/ratelimit/config/RateLimitConfigModifier.java +++ b/spring-cloud-starter-tencent-polaris-ratelimit/src/main/java/com/tencent/cloud/polaris/ratelimit/config/RateLimitConfigModifier.java @@ -28,7 +28,7 @@ import com.tencent.polaris.factory.config.ConfigurationImpl; */ public class RateLimitConfigModifier implements PolarisConfigModifier { - private PolarisRateLimitProperties polarisRateLimitProperties; + private final PolarisRateLimitProperties polarisRateLimitProperties; public RateLimitConfigModifier(PolarisRateLimitProperties polarisRateLimitProperties) { this.polarisRateLimitProperties = polarisRateLimitProperties; diff --git a/spring-cloud-starter-tencent-polaris-ratelimit/src/main/java/com/tencent/cloud/polaris/ratelimit/filter/QuotaCheckServletFilter.java b/spring-cloud-starter-tencent-polaris-ratelimit/src/main/java/com/tencent/cloud/polaris/ratelimit/filter/QuotaCheckServletFilter.java index f3e4c3b07..cd87fd720 100644 --- a/spring-cloud-starter-tencent-polaris-ratelimit/src/main/java/com/tencent/cloud/polaris/ratelimit/filter/QuotaCheckServletFilter.java +++ b/spring-cloud-starter-tencent-polaris-ratelimit/src/main/java/com/tencent/cloud/polaris/ratelimit/filter/QuotaCheckServletFilter.java @@ -60,6 +60,11 @@ public class QuotaCheckServletFilter extends OncePerRequestFilter { private static final Logger LOG = LoggerFactory.getLogger(QuotaCheckServletFilter.class); + /** + * Default Filter Registration Bean Name Defined . + */ + public static final String QUOTA_FILTER_BEAN_NAME = "quotaFilterRegistrationBean"; + private final LimitAPI limitAPI; private final PolarisRateLimiterLabelServletResolver labelResolver; diff --git a/spring-cloud-starter-tencent-polaris-ratelimit/src/main/java/com/tencent/cloud/polaris/ratelimit/utils/RateLimitUtils.java b/spring-cloud-starter-tencent-polaris-ratelimit/src/main/java/com/tencent/cloud/polaris/ratelimit/utils/RateLimitUtils.java index 4a67aea01..0b7f1a0d0 100644 --- a/spring-cloud-starter-tencent-polaris-ratelimit/src/main/java/com/tencent/cloud/polaris/ratelimit/utils/RateLimitUtils.java +++ b/spring-cloud-starter-tencent-polaris-ratelimit/src/main/java/com/tencent/cloud/polaris/ratelimit/utils/RateLimitUtils.java @@ -36,7 +36,6 @@ public final class RateLimitUtils { private static final Logger LOG = LoggerFactory.getLogger(RateLimitUtils.class); private RateLimitUtils() { - } public static String getRejectTips(PolarisRateLimitProperties polarisRateLimitProperties) { diff --git a/spring-cloud-starter-tencent-polaris-ratelimit/src/test/java/com/tencent/cloud/polaris/ratelimit/config/PolarisRateLimitAutoConfigurationTest.java b/spring-cloud-starter-tencent-polaris-ratelimit/src/test/java/com/tencent/cloud/polaris/ratelimit/config/PolarisRateLimitAutoConfigurationTest.java index a531d81a8..4cb19a2b1 100644 --- a/spring-cloud-starter-tencent-polaris-ratelimit/src/test/java/com/tencent/cloud/polaris/ratelimit/config/PolarisRateLimitAutoConfigurationTest.java +++ b/spring-cloud-starter-tencent-polaris-ratelimit/src/test/java/com/tencent/cloud/polaris/ratelimit/config/PolarisRateLimitAutoConfigurationTest.java @@ -39,11 +39,11 @@ import static org.assertj.core.api.Assertions.assertThat; */ public class PolarisRateLimitAutoConfigurationTest { - private ApplicationContextRunner applicationContextRunner = new ApplicationContextRunner(); + private final ApplicationContextRunner applicationContextRunner = new ApplicationContextRunner(); - private WebApplicationContextRunner webApplicationContextRunner = new WebApplicationContextRunner(); + private final WebApplicationContextRunner webApplicationContextRunner = new WebApplicationContextRunner(); - private ReactiveWebApplicationContextRunner reactiveWebApplicationContextRunner = new ReactiveWebApplicationContextRunner(); + private final ReactiveWebApplicationContextRunner reactiveWebApplicationContextRunner = new ReactiveWebApplicationContextRunner(); @Test public void testNoWebApplication() { diff --git a/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/beanprocessor/LoadBalancerClientFilterBeanPostProcessor.java b/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/beanprocessor/LoadBalancerClientFilterBeanPostProcessor.java index 5111bda51..434c5d37e 100644 --- a/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/beanprocessor/LoadBalancerClientFilterBeanPostProcessor.java +++ b/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/beanprocessor/LoadBalancerClientFilterBeanPostProcessor.java @@ -33,6 +33,7 @@ import org.springframework.beans.factory.config.BeanPostProcessor; import org.springframework.cloud.client.loadbalancer.LoadBalancerClient; import org.springframework.cloud.gateway.config.LoadBalancerProperties; import org.springframework.cloud.gateway.filter.LoadBalancerClientFilter; +import org.springframework.lang.NonNull; /** * Replace LoadBalancerClientFilter with PolarisLoadBalancerClientFilter. @@ -43,12 +44,12 @@ public class LoadBalancerClientFilterBeanPostProcessor implements BeanPostProces private BeanFactory factory; @Override - public void setBeanFactory(BeanFactory beanFactory) throws BeansException { + public void setBeanFactory(@NonNull BeanFactory beanFactory) throws BeansException { this.factory = beanFactory; } @Override - public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException { + public Object postProcessBeforeInitialization(@NonNull Object bean, @NonNull String beanName) throws BeansException { if (bean instanceof LoadBalancerClientFilter) { // Support spring cloud gateway router. // Replaces the default LoadBalancerClientFilter implementation and returns a custom PolarisLoadBalancerClientFilter @@ -63,4 +64,5 @@ public class LoadBalancerClientFilterBeanPostProcessor implements BeanPostProces } return bean; } + } diff --git a/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/beanprocessor/LoadBalancerInterceptorBeanPostProcessor.java b/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/beanprocessor/LoadBalancerInterceptorBeanPostProcessor.java index 0b383a682..479b5077e 100644 --- a/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/beanprocessor/LoadBalancerInterceptorBeanPostProcessor.java +++ b/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/beanprocessor/LoadBalancerInterceptorBeanPostProcessor.java @@ -33,6 +33,7 @@ import org.springframework.beans.factory.config.BeanPostProcessor; import org.springframework.cloud.client.loadbalancer.LoadBalancerClient; import org.springframework.cloud.client.loadbalancer.LoadBalancerInterceptor; import org.springframework.cloud.client.loadbalancer.LoadBalancerRequestFactory; +import org.springframework.lang.NonNull; /** * Replace LoadBalancerInterceptor with PolarisLoadBalancerInterceptor. @@ -44,12 +45,12 @@ public class LoadBalancerInterceptorBeanPostProcessor implements BeanPostProcess private BeanFactory factory; @Override - public void setBeanFactory(BeanFactory beanFactory) throws BeansException { + public void setBeanFactory(@NonNull BeanFactory beanFactory) throws BeansException { this.factory = beanFactory; } @Override - public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException { + public Object postProcessBeforeInitialization(@NonNull Object bean, @NonNull String beanName) throws BeansException { if (bean instanceof LoadBalancerInterceptor) { // Support rest template router. // Replaces the default LoadBalancerInterceptor implementation and returns a custom PolarisLoadBalancerInterceptor @@ -64,4 +65,5 @@ public class LoadBalancerInterceptorBeanPostProcessor implements BeanPostProcess } return bean; } + } diff --git a/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/config/FeignAutoConfiguration.java b/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/config/FeignAutoConfiguration.java index 5b87668ea..f367a88f6 100644 --- a/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/config/FeignAutoConfiguration.java +++ b/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/config/FeignAutoConfiguration.java @@ -38,7 +38,7 @@ import org.springframework.lang.Nullable; * Feign-related components need to be loaded only in the feign environment. *@author lepdou 2022-06-10 */ -@Configuration +@Configuration(proxyBeanMethods = false) @ConditionalOnClass(name = {"org.springframework.cloud.openfeign.ribbon.FeignLoadBalancer"}) @RibbonClients(defaultConfiguration = {FeignLoadBalancerConfiguration.class}) public class FeignAutoConfiguration { diff --git a/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/config/FeignLoadBalancerConfiguration.java b/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/config/FeignLoadBalancerConfiguration.java index e6368cc85..769bce4ea 100644 --- a/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/config/FeignLoadBalancerConfiguration.java +++ b/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/config/FeignLoadBalancerConfiguration.java @@ -38,4 +38,5 @@ public class FeignLoadBalancerConfiguration { ServerIntrospector serverIntrospector) { return new PolarisFeignLoadBalancer(lb, clientConfig, serverIntrospector); } + } diff --git a/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/config/RibbonConfiguration.java b/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/config/RibbonConfiguration.java index 9bc17b276..63033bfa2 100644 --- a/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/config/RibbonConfiguration.java +++ b/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/config/RibbonConfiguration.java @@ -46,4 +46,5 @@ public class RibbonConfiguration { polarisNearByRouterProperties, polarisMetadataRouterProperties, polarisRuleBasedRouterProperties, iClientConfig); } + } diff --git a/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/config/RouterAutoConfiguration.java b/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/config/RouterAutoConfiguration.java index 690ba9f0c..17cab8f54 100644 --- a/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/config/RouterAutoConfiguration.java +++ b/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/config/RouterAutoConfiguration.java @@ -40,7 +40,7 @@ import static org.springframework.core.Ordered.HIGHEST_PRECEDENCE; * *@author lepdou 2022-05-11 */ -@Configuration +@Configuration(proxyBeanMethods = false) @RibbonClients(defaultConfiguration = {RibbonConfiguration.class}) @Import({PolarisNearByRouterProperties.class, PolarisMetadataRouterProperties.class, PolarisRuleBasedRouterProperties.class}) public class RouterAutoConfiguration { @@ -63,4 +63,5 @@ public class RouterAutoConfiguration { public RouterRuleLabelResolver routerRuleLabelResolver(ServiceRuleManager serviceRuleManager) { return new RouterRuleLabelResolver(serviceRuleManager); } + } diff --git a/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/config/properties/PolarisMetadataRouterProperties.java b/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/config/properties/PolarisMetadataRouterProperties.java index 70ded3a8c..55f026d6a 100644 --- a/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/config/properties/PolarisMetadataRouterProperties.java +++ b/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/config/properties/PolarisMetadataRouterProperties.java @@ -43,4 +43,5 @@ public class PolarisMetadataRouterProperties { "enabled=" + enabled + '}'; } + } diff --git a/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/config/properties/PolarisNearByRouterProperties.java b/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/config/properties/PolarisNearByRouterProperties.java index 3cd69ca12..c65e4ddd9 100644 --- a/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/config/properties/PolarisNearByRouterProperties.java +++ b/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/config/properties/PolarisNearByRouterProperties.java @@ -44,4 +44,5 @@ public class PolarisNearByRouterProperties { "enabled=" + enabled + '}'; } + } diff --git a/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/feign/FeignExpressionLabelUtils.java b/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/feign/FeignExpressionLabelUtils.java index 92b8a6608..d5353f66d 100644 --- a/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/feign/FeignExpressionLabelUtils.java +++ b/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/feign/FeignExpressionLabelUtils.java @@ -74,10 +74,10 @@ public class FeignExpressionLabelUtils { public static String getHeaderValue(RequestTemplate request, String key) { Map> headers = request.headers(); return ExpressionLabelUtils.getFirstValue(headers, key); - } public static String getQueryValue(RequestTemplate request, String key) { return ExpressionLabelUtils.getFirstValue(request.queries(), key); } + } diff --git a/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/feign/PolarisCachingSpringLoadBalanceFactory.java b/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/feign/PolarisCachingSpringLoadBalanceFactory.java index 2c15ce790..589f7811e 100644 --- a/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/feign/PolarisCachingSpringLoadBalanceFactory.java +++ b/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/feign/PolarisCachingSpringLoadBalanceFactory.java @@ -69,4 +69,5 @@ public class PolarisCachingSpringLoadBalanceFactory extends CachingSpringLoadBal return loadBalancer; } + } diff --git a/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/feign/PolarisFeignLoadBalancer.java b/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/feign/PolarisFeignLoadBalancer.java index 76c824f62..a5f9e21d2 100644 --- a/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/feign/PolarisFeignLoadBalancer.java +++ b/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/feign/PolarisFeignLoadBalancer.java @@ -20,10 +20,10 @@ package com.tencent.cloud.polaris.router.feign; import java.io.UnsupportedEncodingException; import java.net.URLDecoder; -import java.nio.charset.StandardCharsets; import java.util.Collection; import java.util.HashMap; import java.util.Map; +import java.util.Optional; import com.netflix.client.config.IClientConfig; import com.netflix.loadbalancer.ILoadBalancer; @@ -38,6 +38,8 @@ import org.springframework.cloud.netflix.ribbon.ServerIntrospector; import org.springframework.cloud.openfeign.ribbon.FeignLoadBalancer; import org.springframework.util.CollectionUtils; +import static com.tencent.cloud.common.constant.ContextConstant.UTF_8; + /** * In order to pass router context for {@link com.tencent.cloud.polaris.router.PolarisLoadBalancerCompositeRule}. * @@ -75,14 +77,19 @@ public class PolarisFeignLoadBalancer extends FeignLoadBalancer { Map labelHeaderValuesMap = new HashMap<>(); try { - String labelHeaderValuesContent = labelHeaderValues.stream().findFirst().get(); - labelHeaderValuesMap.putAll(JacksonUtils.deserialize2Map(URLDecoder.decode(labelHeaderValuesContent, StandardCharsets.UTF_8.name()))); + Optional opt = labelHeaderValues.stream().findFirst(); + if (opt.isPresent()) { + String labelHeaderValuesContent = opt.get(); + Map labels = JacksonUtils.deserialize2Map(URLDecoder.decode(labelHeaderValuesContent, UTF_8)); + labelHeaderValuesMap.putAll(labels); + } } catch (UnsupportedEncodingException e) { - throw new RuntimeException("unsupported charset exception " + StandardCharsets.UTF_8.name()); + throw new RuntimeException("unsupported charset exception " + UTF_8); } routerContext.setLabels(PolarisRouterContext.RULE_ROUTER_LABELS, labelHeaderValuesMap); return routerContext; } + } diff --git a/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/feign/RouterLabelFeignInterceptor.java b/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/feign/RouterLabelFeignInterceptor.java index 4eb59a208..50efabc21 100644 --- a/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/feign/RouterLabelFeignInterceptor.java +++ b/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/feign/RouterLabelFeignInterceptor.java @@ -20,7 +20,6 @@ package com.tencent.cloud.polaris.router.feign; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; -import java.nio.charset.StandardCharsets; import java.util.Collections; import java.util.Comparator; import java.util.HashMap; @@ -43,6 +42,8 @@ import org.slf4j.LoggerFactory; import org.springframework.core.Ordered; import org.springframework.util.CollectionUtils; +import static com.tencent.cloud.common.constant.ContextConstant.UTF_8; + /** * Resolver labels from request. * @@ -113,10 +114,10 @@ public class RouterLabelFeignInterceptor implements RequestInterceptor, Ordered String encodedLabelsContent; try { - encodedLabelsContent = URLEncoder.encode(JacksonUtils.serialize2Json(labels), StandardCharsets.UTF_8.name()); + encodedLabelsContent = URLEncoder.encode(JacksonUtils.serialize2Json(labels), UTF_8); } catch (UnsupportedEncodingException e) { - throw new RuntimeException("unsupported charset exception " + StandardCharsets.UTF_8.name()); + throw new RuntimeException("unsupported charset exception " + UTF_8); } requestTemplate.header(RouterConstants.ROUTER_LABEL_HEADER, encodedLabelsContent); } diff --git a/spring-cloud-starter-tencent-polaris-router/src/test/java/com/tencent/cloud/polaris/router/feign/RouterLabelFeignInterceptorTest.java b/spring-cloud-starter-tencent-polaris-router/src/test/java/com/tencent/cloud/polaris/router/feign/RouterLabelFeignInterceptorTest.java index 16f15c372..9fe419ede 100644 --- a/spring-cloud-starter-tencent-polaris-router/src/test/java/com/tencent/cloud/polaris/router/feign/RouterLabelFeignInterceptorTest.java +++ b/spring-cloud-starter-tencent-polaris-router/src/test/java/com/tencent/cloud/polaris/router/feign/RouterLabelFeignInterceptorTest.java @@ -20,7 +20,6 @@ package com.tencent.cloud.polaris.router.feign; import java.io.UnsupportedEncodingException; import java.net.URLDecoder; -import java.nio.charset.StandardCharsets; import java.util.Collection; import java.util.Collections; import java.util.HashMap; @@ -46,6 +45,7 @@ import org.mockito.MockedStatic; import org.mockito.Mockito; import org.mockito.junit.MockitoJUnitRunner; +import static com.tencent.cloud.common.constant.ContextConstant.UTF_8; import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.Mockito.when; @@ -122,10 +122,10 @@ public class RouterLabelFeignInterceptorTest { Map routerLabelsMap = new HashMap<>(); try { String routerLabelContent = routerLabels.stream().findFirst().get(); - routerLabelsMap.putAll(JacksonUtils.deserialize2Map(URLDecoder.decode(routerLabelContent, StandardCharsets.UTF_8.name()))); + routerLabelsMap.putAll(JacksonUtils.deserialize2Map(URLDecoder.decode(routerLabelContent, UTF_8))); } catch (UnsupportedEncodingException e) { - throw new RuntimeException("unsupported charset exception " + StandardCharsets.UTF_8.name()); + throw new RuntimeException("unsupported charset exception " + UTF_8); } Assert.assertNotNull(routerLabelsMap); for (String value : routerLabelsMap.values()) { diff --git a/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/constant/ContextConstant.java b/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/constant/ContextConstant.java index 71ce1e886..8aa7079cf 100644 --- a/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/constant/ContextConstant.java +++ b/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/constant/ContextConstant.java @@ -17,6 +17,8 @@ package com.tencent.cloud.common.constant; +import java.nio.charset.StandardCharsets; + /** * Constant for Context. * @@ -29,6 +31,11 @@ public final class ContextConstant { */ public static final String POLARIS = "POLARIS"; + /** + * SCT Default Charset . + */ + public static final String UTF_8 = StandardCharsets.UTF_8.name(); + private ContextConstant() { } diff --git a/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/metadata/config/MetadataAutoConfiguration.java b/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/metadata/config/MetadataAutoConfiguration.java index 5bcc0fd34..3866234d1 100644 --- a/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/metadata/config/MetadataAutoConfiguration.java +++ b/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/metadata/config/MetadataAutoConfiguration.java @@ -31,7 +31,7 @@ import org.springframework.context.annotation.Configuration; * * @author Haotian Zhang */ -@Configuration +@Configuration(proxyBeanMethods = false) public class MetadataAutoConfiguration { /** diff --git a/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/util/AddressUtils.java b/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/util/AddressUtils.java index 0bda18cde..1b51cc50b 100644 --- a/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/util/AddressUtils.java +++ b/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/util/AddressUtils.java @@ -35,7 +35,6 @@ public final class AddressUtils { private static final String ADDRESS_SEPARATOR = ","; private AddressUtils() { - } public static List parseAddressList(String addressInfo) { diff --git a/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/util/ApplicationContextAwareUtils.java b/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/util/ApplicationContextAwareUtils.java index 9c6aff74d..5dcb5fd6b 100644 --- a/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/util/ApplicationContextAwareUtils.java +++ b/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/util/ApplicationContextAwareUtils.java @@ -20,6 +20,7 @@ package com.tencent.cloud.common.util; import org.springframework.beans.BeansException; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; +import org.springframework.lang.NonNull; import org.springframework.stereotype.Component; /** @@ -41,7 +42,7 @@ public class ApplicationContextAwareUtils implements ApplicationContextAware { } @Override - public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { + public void setApplicationContext(@NonNull ApplicationContext applicationContext) throws BeansException { ApplicationContextAwareUtils.applicationContext = applicationContext; } diff --git a/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/util/JacksonUtils.java b/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/util/JacksonUtils.java index a30fc8bc1..f65252792 100644 --- a/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/util/JacksonUtils.java +++ b/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/util/JacksonUtils.java @@ -66,6 +66,7 @@ public final class JacksonUtils { * @param jsonStr Json String * @return Map */ + @SuppressWarnings("unchecked") public static Map deserialize2Map(String jsonStr) { try { if (StringUtils.hasText(jsonStr)) { diff --git a/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/util/ReflectionUtils.java b/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/util/ReflectionUtils.java index 6c4a3353e..c9c87d767 100644 --- a/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/util/ReflectionUtils.java +++ b/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/util/ReflectionUtils.java @@ -27,7 +27,6 @@ import java.lang.reflect.Field; public final class ReflectionUtils { private ReflectionUtils() { - } public static Object getFieldValue(Object instance, String fieldName) { diff --git a/spring-cloud-tencent-examples/polaris-gateway-example/gateway-callee-service/src/main/java/com/tencent/cloud/polaris/gateway/example/callee/GatewayCalleeController.java b/spring-cloud-tencent-examples/polaris-gateway-example/gateway-callee-service/src/main/java/com/tencent/cloud/polaris/gateway/example/callee/GatewayCalleeController.java index 7b53d688f..580af7ca9 100644 --- a/spring-cloud-tencent-examples/polaris-gateway-example/gateway-callee-service/src/main/java/com/tencent/cloud/polaris/gateway/example/callee/GatewayCalleeController.java +++ b/spring-cloud-tencent-examples/polaris-gateway-example/gateway-callee-service/src/main/java/com/tencent/cloud/polaris/gateway/example/callee/GatewayCalleeController.java @@ -19,7 +19,6 @@ package com.tencent.cloud.polaris.gateway.example.callee; import java.io.UnsupportedEncodingException; import java.net.URLDecoder; -import java.nio.charset.StandardCharsets; import com.tencent.cloud.common.constant.MetadataConstant; import org.slf4j.Logger; @@ -30,6 +29,8 @@ import org.springframework.web.bind.annotation.RequestHeader; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import static com.tencent.cloud.common.constant.ContextConstant.UTF_8; + /** * Gateway callee controller. * @@ -65,8 +66,8 @@ public class GatewayCalleeController { public String echoHeader( @RequestHeader(MetadataConstant.HeaderName.CUSTOM_METADATA) String metadataStr) throws UnsupportedEncodingException { - LOG.info(URLDecoder.decode(metadataStr, StandardCharsets.UTF_8.name())); - return URLDecoder.decode(metadataStr, StandardCharsets.UTF_8.name()); + LOG.info(URLDecoder.decode(metadataStr, UTF_8)); + return URLDecoder.decode(metadataStr, UTF_8); } } diff --git a/spring-cloud-tencent-examples/polaris-gateway-example/gateway-callee-service2/src/main/java/com/tencent/cloud/polaris/gateway/example/callee/GatewayCalleeController.java b/spring-cloud-tencent-examples/polaris-gateway-example/gateway-callee-service2/src/main/java/com/tencent/cloud/polaris/gateway/example/callee/GatewayCalleeController.java index 7b53d688f..580af7ca9 100644 --- a/spring-cloud-tencent-examples/polaris-gateway-example/gateway-callee-service2/src/main/java/com/tencent/cloud/polaris/gateway/example/callee/GatewayCalleeController.java +++ b/spring-cloud-tencent-examples/polaris-gateway-example/gateway-callee-service2/src/main/java/com/tencent/cloud/polaris/gateway/example/callee/GatewayCalleeController.java @@ -19,7 +19,6 @@ package com.tencent.cloud.polaris.gateway.example.callee; import java.io.UnsupportedEncodingException; import java.net.URLDecoder; -import java.nio.charset.StandardCharsets; import com.tencent.cloud.common.constant.MetadataConstant; import org.slf4j.Logger; @@ -30,6 +29,8 @@ import org.springframework.web.bind.annotation.RequestHeader; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import static com.tencent.cloud.common.constant.ContextConstant.UTF_8; + /** * Gateway callee controller. * @@ -65,8 +66,8 @@ public class GatewayCalleeController { public String echoHeader( @RequestHeader(MetadataConstant.HeaderName.CUSTOM_METADATA) String metadataStr) throws UnsupportedEncodingException { - LOG.info(URLDecoder.decode(metadataStr, StandardCharsets.UTF_8.name())); - return URLDecoder.decode(metadataStr, StandardCharsets.UTF_8.name()); + LOG.info(URLDecoder.decode(metadataStr, UTF_8)); + return URLDecoder.decode(metadataStr, UTF_8); } } diff --git a/spring-cloud-tencent-polaris-context/src/main/java/com/tencent/cloud/polaris/context/PolarisContextAutoConfiguration.java b/spring-cloud-tencent-polaris-context/src/main/java/com/tencent/cloud/polaris/context/PolarisContextAutoConfiguration.java index 5ead163dd..2e0c15983 100644 --- a/spring-cloud-tencent-polaris-context/src/main/java/com/tencent/cloud/polaris/context/PolarisContextAutoConfiguration.java +++ b/spring-cloud-tencent-polaris-context/src/main/java/com/tencent/cloud/polaris/context/PolarisContextAutoConfiguration.java @@ -30,12 +30,14 @@ import org.springframework.boot.autoconfigure.ImportAutoConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; /** * Autoconfiguration for Polaris {@link SDKContext}. * * @author Haotian Zhang */ +@Configuration(proxyBeanMethods = false) @ConditionalOnPolarisEnabled @EnableConfigurationProperties({PolarisContextProperties.class}) @ImportAutoConfiguration(MetadataAutoConfiguration.class) diff --git a/spring-cloud-tencent-polaris-context/src/main/java/com/tencent/cloud/polaris/context/PolarisContextBootstrapAutoConfiguration.java b/spring-cloud-tencent-polaris-context/src/main/java/com/tencent/cloud/polaris/context/PolarisContextBootstrapAutoConfiguration.java index c5b4efbd9..a0d85f81f 100644 --- a/spring-cloud-tencent-polaris-context/src/main/java/com/tencent/cloud/polaris/context/PolarisContextBootstrapAutoConfiguration.java +++ b/spring-cloud-tencent-polaris-context/src/main/java/com/tencent/cloud/polaris/context/PolarisContextBootstrapAutoConfiguration.java @@ -21,6 +21,7 @@ package com.tencent.cloud.polaris.context; import com.tencent.polaris.client.api.SDKContext; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; +import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Import; /** @@ -28,6 +29,7 @@ import org.springframework.context.annotation.Import; * * @author Haotian Zhang */ +@Configuration(proxyBeanMethods = false) @ConditionalOnProperty("spring.cloud.polaris.enabled") @Import(PolarisContextAutoConfiguration.class) public class PolarisContextBootstrapAutoConfiguration { diff --git a/spring-cloud-tencent-polaris-loadbalancer/src/main/java/com/tencent/cloud/polaris/loadbalancer/config/PolarisLoadBalancerAutoConfiguration.java b/spring-cloud-tencent-polaris-loadbalancer/src/main/java/com/tencent/cloud/polaris/loadbalancer/config/PolarisLoadBalancerAutoConfiguration.java index 6774b5487..c0cd423c3 100644 --- a/spring-cloud-tencent-polaris-loadbalancer/src/main/java/com/tencent/cloud/polaris/loadbalancer/config/PolarisLoadBalancerAutoConfiguration.java +++ b/spring-cloud-tencent-polaris-loadbalancer/src/main/java/com/tencent/cloud/polaris/loadbalancer/config/PolarisLoadBalancerAutoConfiguration.java @@ -53,4 +53,5 @@ public class PolarisLoadBalancerAutoConfiguration { public RouterAPI routerAPI(SDKContext polarisContext) throws PolarisException { return RouterAPIFactory.createRouterAPIByContext(polarisContext); } + } diff --git a/spring-cloud-tencent-polaris-loadbalancer/src/main/java/com/tencent/cloud/polaris/loadbalancer/config/PolarisRibbonClientConfiguration.java b/spring-cloud-tencent-polaris-loadbalancer/src/main/java/com/tencent/cloud/polaris/loadbalancer/config/PolarisRibbonClientConfiguration.java index 3fbc2c76d..a92048918 100644 --- a/spring-cloud-tencent-polaris-loadbalancer/src/main/java/com/tencent/cloud/polaris/loadbalancer/config/PolarisRibbonClientConfiguration.java +++ b/spring-cloud-tencent-polaris-loadbalancer/src/main/java/com/tencent/cloud/polaris/loadbalancer/config/PolarisRibbonClientConfiguration.java @@ -28,14 +28,12 @@ import com.tencent.cloud.polaris.loadbalancer.PolarisLoadBalancer; import com.tencent.polaris.api.core.ConsumerAPI; import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; /** * Configuration of ribbon client of Polaris. * * @author Haotian Zhang */ -@Configuration public class PolarisRibbonClientConfiguration { @Bean