diff --git a/CHANGELOG.md b/CHANGELOG.md
index bee59f94..6b226133 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -24,6 +24,8 @@
- [Use jdk constants instead of magic variables](https://github.com/Tencent/spring-cloud-tencent/pull/361)
- [Refator JacksonUtils and JacksonUtilsTest](https://github.com/Tencent/spring-cloud-tencent/pull/367)
- [Feature: support actuator for sct core components](https://github.com/Tencent/spring-cloud-tencent/pull/369)
-- [docs: Fix javadoc
error](https://github.com/Tencent/spring-cloud-tencent/pull/376)
+- [docs: Fix javadoc
error](https://github.com/Tencent/spring-cloud-tencent/pull/376)
- [docs:optimize example](https://github.com/Tencent/spring-cloud-tencent/pull/387)
- [Feature: support spring cloud gateway routers](https://github.com/Tencent/spring-cloud-tencent/pull/390)
+- [Optimize starter's auto-configuration](https://github.com/Tencent/spring-cloud-tencent/pull/396)
+
diff --git a/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/config/MetadataTransferAutoConfiguration.java b/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/config/MetadataTransferAutoConfiguration.java
index 5050e9cf..024eb979 100644
--- a/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/config/MetadataTransferAutoConfiguration.java
+++ b/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/config/MetadataTransferAutoConfiguration.java
@@ -39,6 +39,7 @@ import org.springframework.context.ApplicationContextAware;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.client.ClientHttpRequestInterceptor;
+import org.springframework.lang.NonNull;
import org.springframework.util.CollectionUtils;
import org.springframework.web.client.RestTemplate;
@@ -53,15 +54,15 @@ import static javax.servlet.DispatcherType.REQUEST;
*
* @author Haotian Zhang
*/
-@Configuration
+@Configuration(proxyBeanMethods = false)
public class MetadataTransferAutoConfiguration {
/**
* Create when web application type is SERVLET.
*/
- @Configuration
+ @Configuration(proxyBeanMethods = false)
@ConditionalOnWebApplication(type = ConditionalOnWebApplication.Type.SERVLET)
- static class MetadataServletFilterConfig {
+ protected static class MetadataServletFilterConfig {
@Bean
public FilterRegistrationBean metadataServletFilterRegistrationBean(
@@ -79,57 +80,53 @@ public class MetadataTransferAutoConfiguration {
public DecodeTransferMetadataServletFilter metadataServletFilter() {
return new DecodeTransferMetadataServletFilter();
}
-
}
/**
* 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() {
return new DecodeTransferMetadataReactiveFilter();
}
-
}
/**
* 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() {
return new EncodeTransferMedataScgFilter();
}
-
}
/**
* Create when Feign exists.
*/
- @Configuration
+ @Configuration(proxyBeanMethods = false)
@ConditionalOnClass(name = "feign.Feign")
- static class MetadataTransferFeignInterceptorConfig {
+ protected static class MetadataTransferFeignInterceptorConfig {
@Bean
public EncodeTransferMedataFeignInterceptor encodeTransferMedataFeignInterceptor() {
return new EncodeTransferMedataFeignInterceptor();
}
-
}
/**
* 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;
@@ -163,15 +160,14 @@ public class MetadataTransferAutoConfiguration {
}
@Override
- public void setApplicationContext(ApplicationContext applicationContext)
- throws BeansException {
+ public void setApplicationContext(@NonNull ApplicationContext applicationContext) throws BeansException {
this.context = applicationContext;
}
public static class EncodeTransferMetadataRestTemplatePostProcessor
implements BeanPostProcessor {
- private EncodeTransferMedataRestTemplateInterceptor encodeTransferMedataRestTemplateInterceptor;
+ private final EncodeTransferMedataRestTemplateInterceptor encodeTransferMedataRestTemplateInterceptor;
EncodeTransferMetadataRestTemplatePostProcessor(
EncodeTransferMedataRestTemplateInterceptor encodeTransferMedataRestTemplateInterceptor) {
@@ -179,12 +175,12 @@ public class MetadataTransferAutoConfiguration {
}
@Override
- public Object postProcessBeforeInitialization(Object bean, String beanName) {
+ public Object postProcessBeforeInitialization(@NonNull Object bean, @NonNull String beanName) {
return bean;
}
@Override
- public Object postProcessAfterInitialization(Object bean, String beanName) {
+ public Object postProcessAfterInitialization(@NonNull Object bean, @NonNull String beanName) {
if (bean instanceof RestTemplate) {
RestTemplate restTemplate = (RestTemplate) bean;
List interceptors = restTemplate
@@ -197,9 +193,6 @@ public class MetadataTransferAutoConfiguration {
}
return bean;
}
-
}
-
}
-
}
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 a81b75e7..d07d8fb9 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.
@@ -81,11 +82,10 @@ public class DecodeTransferMetadataReactiveFilter implements WebFilter, Ordered
private Map getIntervalTransitiveMetadata(ServerHttpRequest serverHttpRequest) {
HttpHeaders httpHeaders = serverHttpRequest.getHeaders();
- String customMetadataStr = httpHeaders
- .getFirst(MetadataConstant.HeaderName.CUSTOM_METADATA);
+ String customMetadataStr = httpHeaders.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) {
@@ -95,5 +95,4 @@ public class DecodeTransferMetadataReactiveFilter implements WebFilter, Ordered
return JacksonUtils.deserialize2Map(customMetadataStr);
}
-
}
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 5f7692bc..3d612fde 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.
@@ -77,7 +78,7 @@ public class DecodeTransferMetadataServletFilter extends OncePerRequestFilter {
String customMetadataStr = httpServletRequest.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 b361ee81..a6af9e15 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;
/**
@@ -63,7 +63,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);
@@ -71,5 +71,4 @@ public class EncodeTransferMedataFeignInterceptor implements RequestInterceptor,
}
}
}
-
}
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 ce263754..75f19819 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;
@@ -36,6 +35,8 @@ import org.springframework.http.client.ClientHttpRequestInterceptor;
import org.springframework.http.client.ClientHttpResponse;
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.
@@ -60,7 +61,7 @@ public class EncodeTransferMedataRestTemplateInterceptor implements ClientHttpRe
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, encodedTransitiveMetadata);
@@ -68,5 +69,4 @@ public class EncodeTransferMedataRestTemplateInterceptor implements ClientHttpRe
}
return clientHttpRequestExecution.execute(httpRequest, bytes);
}
-
}
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 b08a1072..1bf2ecc4 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.ReactiveLoadBalancerClientFilter.LOAD_BALANCER_CLIENT_FILTER_ORDER;
/**
@@ -69,7 +69,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/test/java/com/tencent/cloud/metadata/core/EncodeTransferMedataFeignInterceptorTest.java b/spring-cloud-starter-tencent-metadata-transfer/src/test/java/com/tencent/cloud/metadata/core/EncodeTransferMedataFeignInterceptorTest.java
index 0dc2cd91..67f7edb4 100644
--- a/spring-cloud-starter-tencent-metadata-transfer/src/test/java/com/tencent/cloud/metadata/core/EncodeTransferMedataFeignInterceptorTest.java
+++ b/spring-cloud-starter-tencent-metadata-transfer/src/test/java/com/tencent/cloud/metadata/core/EncodeTransferMedataFeignInterceptorTest.java
@@ -97,9 +97,6 @@ public class EncodeTransferMedataFeignInterceptorTest {
template.header(MetadataConstant.HeaderName.CUSTOM_METADATA,
"{\"a\":\"11\",\"b\":\"22\",\"c\":\"33\"}");
}
-
}
-
}
-
}
diff --git a/spring-cloud-starter-tencent-metadata-transfer/src/test/java/com/tencent/cloud/metadata/core/EncodeTransferMedataScgFilterTest.java b/spring-cloud-starter-tencent-metadata-transfer/src/test/java/com/tencent/cloud/metadata/core/EncodeTransferMedataScgFilterTest.java
index 09ce46c8..d7de2354 100644
--- a/spring-cloud-starter-tencent-metadata-transfer/src/test/java/com/tencent/cloud/metadata/core/EncodeTransferMedataScgFilterTest.java
+++ b/spring-cloud-starter-tencent-metadata-transfer/src/test/java/com/tencent/cloud/metadata/core/EncodeTransferMedataScgFilterTest.java
@@ -19,7 +19,6 @@ package com.tencent.cloud.metadata.core;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
-import java.nio.charset.StandardCharsets;
import java.util.Map;
import com.tencent.cloud.common.constant.MetadataConstant;
@@ -38,6 +37,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;
/**
@@ -48,7 +48,7 @@ import static org.springframework.boot.test.context.SpringBootTest.WebEnvironmen
@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = RANDOM_PORT,
classes = EncodeTransferMedataScgFilterTest.TestApplication.class,
- properties = { "spring.config.location = classpath:application-test.yml", "spring.main.web-application-type = reactive" })
+ properties = {"spring.config.location = classpath:application-test.yml", "spring.main.web-application-type = reactive"})
public class EncodeTransferMedataScgFilterTest {
@Autowired
@@ -64,7 +64,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);
Assertions.assertThat(transitiveMap.get("b")).isEqualTo("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 00000000..e8e1fa03
--- /dev/null
+++ b/spring-cloud-starter-tencent-polaris-circuitbreaker/src/main/java/com/tencent/cloud/polaris/circuitbreaker/config/PolarisCircuitBreakerAutoConfiguration.java
@@ -0,0 +1,100 @@
+/*
+ * 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.config.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.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)
+ @ConditionalOnClass(RestTemplate.class)
+ @ConditionalOnProperty(value = "spring.cloud.polaris.circuitbreaker.enabled", havingValue = "true", matchIfMissing = true)
+ protected static class PolarisRestTemplateAutoConfiguration {
+
+ @Bean
+ public PolarisRestTemplateResponseErrorHandler polarisRestTemplateResponseErrorHandler(
+ ConsumerAPI consumerAPI, @Autowired(required = false) PolarisResponseErrorHandler polarisResponseErrorHandler) {
+ return new PolarisRestTemplateResponseErrorHandler(consumerAPI, polarisResponseErrorHandler);
+ }
+
+ @Bean
+ 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 064bb081..bc4e022e 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
@@ -66,7 +65,5 @@ public class PolarisCircuitBreakerBootstrapConfiguration {
public int getOrder() {
return ContextConstant.ModifierOrder.CIRCUIT_BREAKER_ORDER;
}
-
}
-
}
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 a1f50a3d..00000000
--- 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.config.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 a81f1344..00000000
--- a/spring-cloud-starter-tencent-polaris-circuitbreaker/src/main/java/com/tencent/cloud/polaris/circuitbreaker/config/PolarisRestTemplateAutoConfiguration.java
+++ /dev/null
@@ -1,59 +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.config.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;
-
-/**
- * Auto configuration PolarisRestTemplateAutoConfiguration .
- *
- * @author wh 2022/6/21
- */
-@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/java/com/tencent/cloud/polaris/circuitbreaker/feign/PolarisFeignBlockingLoadBalancerClient.java b/spring-cloud-starter-tencent-polaris-circuitbreaker/src/main/java/com/tencent/cloud/polaris/circuitbreaker/feign/PolarisFeignBlockingLoadBalancerClient.java
index 178ae3ec..fe6b4f38 100644
--- a/spring-cloud-starter-tencent-polaris-circuitbreaker/src/main/java/com/tencent/cloud/polaris/circuitbreaker/feign/PolarisFeignBlockingLoadBalancerClient.java
+++ b/spring-cloud-starter-tencent-polaris-circuitbreaker/src/main/java/com/tencent/cloud/polaris/circuitbreaker/feign/PolarisFeignBlockingLoadBalancerClient.java
@@ -34,5 +34,4 @@ public class PolarisFeignBlockingLoadBalancerClient extends FeignBlockingLoadBal
LoadBalancerClientFactory loadBalancerClientFactory) {
super(delegate, loadBalancerClient, loadBalancerClientFactory);
}
-
}
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 be529db9..2c72cfed 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,5 +1,4 @@
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 682b9952..6858a627 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.config.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
@@ -49,5 +49,4 @@ public class PolarisFeignClientAutoConfigurationTest {
assertThat(context).hasSingleBean(PolarisFeignBeanPostProcessor.class);
});
}
-
}
diff --git a/spring-cloud-starter-tencent-polaris-circuitbreaker/src/test/java/com/tencent/cloud/polaris/circuitbreaker/PolarisRestTemplateAutoConfigurationTest.java b/spring-cloud-starter-tencent-polaris-circuitbreaker/src/test/java/com/tencent/cloud/polaris/circuitbreaker/PolarisRestTemplateAutoConfigurationTest.java
index a3dc9999..b0b1e76e 100644
--- a/spring-cloud-starter-tencent-polaris-circuitbreaker/src/test/java/com/tencent/cloud/polaris/circuitbreaker/PolarisRestTemplateAutoConfigurationTest.java
+++ b/spring-cloud-starter-tencent-polaris-circuitbreaker/src/test/java/com/tencent/cloud/polaris/circuitbreaker/PolarisRestTemplateAutoConfigurationTest.java
@@ -18,7 +18,7 @@
package com.tencent.cloud.polaris.circuitbreaker;
-import com.tencent.cloud.polaris.circuitbreaker.config.PolarisRestTemplateAutoConfiguration;
+import com.tencent.cloud.polaris.circuitbreaker.config.PolarisCircuitBreakerAutoConfiguration;
import com.tencent.cloud.polaris.circuitbreaker.resttemplate.PolarisRestTemplateModifier;
import com.tencent.cloud.polaris.circuitbreaker.resttemplate.PolarisRestTemplateResponseErrorHandler;
import com.tencent.cloud.polaris.context.config.PolarisContextAutoConfiguration;
@@ -35,7 +35,7 @@ import org.springframework.web.client.RestTemplate;
import static org.assertj.core.api.Assertions.assertThat;
/**
- * Test For {@link PolarisRestTemplateAutoConfiguration} .
+ * Test For {@link PolarisCircuitBreakerAutoConfiguration} .
*
* @author Palmer Xu 2022-06-28
*/
@@ -46,7 +46,7 @@ public class PolarisRestTemplateAutoConfigurationTest {
AutoConfigurations.of(
PolarisRestTemplateAutoConfigurationTester.class,
PolarisContextAutoConfiguration.class,
- PolarisRestTemplateAutoConfiguration.class))
+ PolarisCircuitBreakerAutoConfiguration.class))
.withPropertyValues("spring.cloud.polaris.circuitbreaker.enabled=true");
@Test
@@ -60,7 +60,7 @@ public class PolarisRestTemplateAutoConfigurationTest {
@Configuration
@EnableAutoConfiguration
- @AutoConfigureBefore(PolarisRestTemplateAutoConfiguration.class)
+ @AutoConfigureBefore(PolarisCircuitBreakerAutoConfiguration.class)
static class PolarisRestTemplateAutoConfigurationTester {
@Bean
@@ -68,5 +68,4 @@ public class PolarisRestTemplateAutoConfigurationTest {
return new RestTemplate();
}
}
-
}
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 2b61b69b..4d8bb496 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
@@ -57,5 +57,4 @@ public class PolarisConfigAutoConfiguration {
public PolarisConfigChangeEventListener polarisConfigChangeEventListener() {
return new PolarisConfigChangeEventListener();
}
-
}
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 20f71910..a67c8a89 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
@@ -79,5 +79,4 @@ public class PolarisConfigBootstrapAutoConfiguration {
PolarisContextProperties polarisContextProperties) {
return new ConfigurationModifier(polarisConfigProperties, polarisContextProperties);
}
-
}
diff --git a/spring-cloud-starter-tencent-polaris-config/src/main/java/com/tencent/cloud/polaris/config/config/PolarisConfigProperties.java b/spring-cloud-starter-tencent-polaris-config/src/main/java/com/tencent/cloud/polaris/config/config/PolarisConfigProperties.java
index a2c9032f..f39c5337 100644
--- a/spring-cloud-starter-tencent-polaris-config/src/main/java/com/tencent/cloud/polaris/config/config/PolarisConfigProperties.java
+++ b/spring-cloud-starter-tencent-polaris-config/src/main/java/com/tencent/cloud/polaris/config/config/PolarisConfigProperties.java
@@ -94,5 +94,4 @@ public class PolarisConfigProperties {
public void setGroups(List groups) {
this.groups = groups;
}
-
}
diff --git a/spring-cloud-starter-tencent-polaris-config/src/main/java/com/tencent/cloud/polaris/config/endpoint/PolarisConfigEndpointAutoConfiguration.java b/spring-cloud-starter-tencent-polaris-config/src/main/java/com/tencent/cloud/polaris/config/endpoint/PolarisConfigEndpointAutoConfiguration.java
index cb26462e..a438407f 100644
--- a/spring-cloud-starter-tencent-polaris-config/src/main/java/com/tencent/cloud/polaris/config/endpoint/PolarisConfigEndpointAutoConfiguration.java
+++ b/spring-cloud-starter-tencent-polaris-config/src/main/java/com/tencent/cloud/polaris/config/endpoint/PolarisConfigEndpointAutoConfiguration.java
@@ -36,8 +36,7 @@ import org.springframework.context.annotation.Configuration;
**/
@Configuration(proxyBeanMethods = false)
@ConditionalOnClass(Endpoint.class)
-@ConditionalOnProperty(value = "spring.cloud.polaris.config.enabled",
- matchIfMissing = true)
+@ConditionalOnProperty(value = "spring.cloud.polaris.config.enabled", matchIfMissing = true)
public class PolarisConfigEndpointAutoConfiguration {
@Bean
diff --git a/spring-cloud-starter-tencent-polaris-config/src/test/java/com/tencent/cloud/polaris/config/listener/ConfigChangeListenerTest.java b/spring-cloud-starter-tencent-polaris-config/src/test/java/com/tencent/cloud/polaris/config/listener/ConfigChangeListenerTest.java
index c408f4f5..84b5336d 100644
--- a/spring-cloud-starter-tencent-polaris-config/src/test/java/com/tencent/cloud/polaris/config/listener/ConfigChangeListenerTest.java
+++ b/spring-cloud-starter-tencent-polaris-config/src/test/java/com/tencent/cloud/polaris/config/listener/ConfigChangeListenerTest.java
@@ -18,10 +18,13 @@
package com.tencent.cloud.polaris.config.listener;
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
+
import com.google.common.collect.Sets;
import com.tencent.cloud.polaris.config.annotation.PolarisConfigKVFileChangeListener;
import com.tencent.polaris.configuration.api.core.ConfigPropertyChangeInfo;
-import org.junit.Assert;
+import org.assertj.core.api.Assertions;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -39,13 +42,13 @@ import static org.springframework.boot.test.context.SpringBootTest.WebEnvironmen
/**
* Integration testing for change listener.
- *@author lepdou 2022-06-11
+ *
+ * @author lepdou 2022-06-11
*/
@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = DEFINED_PORT,
classes = ConfigChangeListenerTest.TestApplication.class,
- properties = {"server.port=8081",
- "spring.config.location = classpath:application-test.yml"})
+ properties = {"server.port=8081", "spring.config.location = classpath:application-test.yml"})
public class ConfigChangeListenerTest {
@Autowired
@@ -55,10 +58,12 @@ public class ConfigChangeListenerTest {
@Autowired
private TestApplication.TestConfig testConfig;
+ private static final CountDownLatch hits = new CountDownLatch(2);
+
@Test
public void test() throws InterruptedException {
//before change
- Assert.assertEquals(1000, testConfig.getTimeout());
+ Assertions.assertThat(testConfig.getTimeout()).isEqualTo(1000);
//submit change event
System.setProperty("timeout", "2000");
@@ -66,12 +71,14 @@ public class ConfigChangeListenerTest {
Sets.newHashSet("timeout"));
applicationEventPublisher.publishEvent(event);
- Thread.sleep(200);
+
//after change
- Assert.assertEquals(2, testConfig.getChangeCnt());
- Assert.assertEquals(2000, testConfig.getTimeout());
- }
+ boolean ret = hits.await(2, TimeUnit.SECONDS);
+ Assertions.assertThat(ret).isEqualTo(true);
+ Assertions.assertThat(testConfig.getChangeCnt()).isEqualTo(2);
+ Assertions.assertThat(testConfig.getTimeout()).isEqualTo(2000);
+ }
@SpringBootApplication
protected static class TestApplication {
@@ -101,6 +108,7 @@ public class ConfigChangeListenerTest {
ConfigPropertyChangeInfo changeInfo = event.getChange("timeout");
timeout = Integer.parseInt(changeInfo.getNewValue());
changeCnt++;
+ hits.countDown();
}
@PolarisConfigKVFileChangeListener(interestedKeyPrefixes = {"timeout"})
@@ -108,6 +116,7 @@ public class ConfigChangeListenerTest {
ConfigPropertyChangeInfo changeInfo = event.getChange("timeout");
timeout = Integer.parseInt(changeInfo.getNewValue());
changeCnt++;
+ hits.countDown();
}
}
@@ -120,5 +129,4 @@ public class ConfigChangeListenerTest {
}
}
}
-
}
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 720b10dd..4eb2efd3 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
@@ -17,8 +17,6 @@
*/
package com.tencent.cloud.polaris;
-import javax.annotation.PostConstruct;
-
import com.tencent.cloud.polaris.context.ConditionalOnPolarisEnabled;
import com.tencent.cloud.polaris.discovery.PolarisDiscoveryHandler;
import com.tencent.cloud.polaris.extend.consul.ConsulContextProperties;
@@ -28,7 +26,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 +38,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) throws PolarisException {
@@ -76,25 +63,4 @@ public class DiscoveryPropertiesAutoConfiguration {
public DiscoveryConfigModifier discoveryConfigModifier() {
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 2de7d014..8ceadf3d 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,8 +106,6 @@ public class PolarisDiscoveryProperties {
*/
private Long serviceListRefreshInterval = 60000L;
- @Autowired
- private Environment environment;
public boolean isHeartbeatEnabled() {
return heartbeatEnabled;
@@ -232,7 +229,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;
@@ -256,7 +253,5 @@ public class PolarisDiscoveryProperties {
public int getOrder() {
return ContextConstant.ModifierOrder.LAST;
}
-
}
-
}
diff --git a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/discovery/PolarisDiscoveryAutoConfiguration.java b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/discovery/PolarisDiscoveryAutoConfiguration.java
index cc8000f4..b92ca625 100644
--- a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/discovery/PolarisDiscoveryAutoConfiguration.java
+++ b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/discovery/PolarisDiscoveryAutoConfiguration.java
@@ -43,5 +43,4 @@ public class PolarisDiscoveryAutoConfiguration {
PolarisDiscoveryHandler polarisDiscoveryHandler) {
return new PolarisServiceDiscovery(polarisDiscoveryHandler);
}
-
}
diff --git a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/discovery/PolarisDiscoveryClientConfiguration.java b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/discovery/PolarisDiscoveryClientConfiguration.java
index 3ed9eb60..b9ff7a84 100644
--- a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/discovery/PolarisDiscoveryClientConfiguration.java
+++ b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/discovery/PolarisDiscoveryClientConfiguration.java
@@ -41,5 +41,4 @@ public class PolarisDiscoveryClientConfiguration {
public DiscoveryClient polarisDiscoveryClient(PolarisServiceDiscovery polarisServiceDiscovery) {
return new PolarisDiscoveryClient(polarisServiceDiscovery);
}
-
}
diff --git a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/discovery/reactive/PolarisReactiveDiscoveryClient.java b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/discovery/reactive/PolarisReactiveDiscoveryClient.java
index a7a0ec09..24d6296d 100644
--- a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/discovery/reactive/PolarisReactiveDiscoveryClient.java
+++ b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/discovery/reactive/PolarisReactiveDiscoveryClient.java
@@ -38,9 +38,9 @@ import org.springframework.cloud.client.discovery.ReactiveDiscoveryClient;
*/
public class PolarisReactiveDiscoveryClient implements ReactiveDiscoveryClient {
- private static final Logger log = LoggerFactory.getLogger(PolarisReactiveDiscoveryClient.class);
+ private static final Logger LOGGER = LoggerFactory.getLogger(PolarisReactiveDiscoveryClient.class);
- private PolarisServiceDiscovery polarisServiceDiscovery;
+ private final PolarisServiceDiscovery polarisServiceDiscovery;
public PolarisReactiveDiscoveryClient(PolarisServiceDiscovery polarisServiceDiscovery) {
this.polarisServiceDiscovery = polarisServiceDiscovery;
@@ -64,7 +64,7 @@ public class PolarisReactiveDiscoveryClient implements ReactiveDiscoveryClient {
return Flux.fromIterable(polarisServiceDiscovery.getInstances(serviceId));
}
catch (PolarisException e) {
- log.error("get service instance[{}] from polaris error!", serviceId, e);
+ LOGGER.error("get service instance[{}] from polaris error!", serviceId, e);
return Flux.empty();
}
};
@@ -77,10 +77,9 @@ public class PolarisReactiveDiscoveryClient implements ReactiveDiscoveryClient {
return Flux.fromIterable(polarisServiceDiscovery.getServices());
}
catch (Exception e) {
- log.error("get services from polaris server fail,", e);
+ LOGGER.error("get services from polaris server fail,", e);
return Flux.empty();
}
}).subscribeOn(Schedulers.boundedElastic());
}
-
}
diff --git a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/discovery/reactive/PolarisReactiveDiscoveryClientConfiguration.java b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/discovery/reactive/PolarisReactiveDiscoveryClientConfiguration.java
index 09928e20..2f3d8e20 100644
--- a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/discovery/reactive/PolarisReactiveDiscoveryClientConfiguration.java
+++ b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/discovery/reactive/PolarisReactiveDiscoveryClientConfiguration.java
@@ -47,5 +47,4 @@ public class PolarisReactiveDiscoveryClientConfiguration {
PolarisServiceDiscovery polarisServiceDiscovery) {
return new PolarisReactiveDiscoveryClient(polarisServiceDiscovery);
}
-
}
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 efddd036..84b24ef6 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;
@@ -164,7 +164,5 @@ public class ConsulContextProperties {
public int getOrder() {
return ModifierOrder.LAST;
}
-
}
-
}
diff --git a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/PolarisAutoServiceRegistration.java b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/PolarisAutoServiceRegistration.java
index b0996d9f..27747c34 100644
--- a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/PolarisAutoServiceRegistration.java
+++ b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/PolarisAutoServiceRegistration.java
@@ -33,7 +33,7 @@ import org.springframework.util.StringUtils;
*/
public class PolarisAutoServiceRegistration extends AbstractAutoServiceRegistration {
- private static final Logger log = LoggerFactory.getLogger(PolarisAutoServiceRegistration.class);
+ private static final Logger LOGGER = LoggerFactory.getLogger(PolarisAutoServiceRegistration.class);
private final PolarisRegistration registration;
@@ -59,7 +59,7 @@ public class PolarisAutoServiceRegistration extends AbstractAutoServiceRegistrat
@Override
protected void register() {
if (!this.registration.isRegisterEnabled()) {
- log.debug("Registration disabled.");
+ LOGGER.debug("Registration disabled.");
return;
}
if (this.registration.getPort() <= 0) {
@@ -74,7 +74,6 @@ public class PolarisAutoServiceRegistration extends AbstractAutoServiceRegistrat
return;
}
super.registerManagement();
-
}
@Override
@@ -93,5 +92,4 @@ public class PolarisAutoServiceRegistration extends AbstractAutoServiceRegistrat
String appName = registration.getPolarisProperties().getService();
return StringUtils.isEmpty(appName) ? super.getAppName() : appName;
}
-
}
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 e0a57e9f..1737bd46 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,14 +24,15 @@ 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.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;
/**
@@ -41,13 +42,13 @@ import org.springframework.util.CollectionUtils;
*/
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 static final String METADATA_KEY_IP = "internal-ip";
+ private static final String METADATA_KEY_ADDRESS = "internal-address";
private final PolarisDiscoveryProperties polarisDiscoveryProperties;
+ private final ConsulContextProperties consulContextProperties;
+
private final SDKContext polarisContext;
private final StaticMetadataManager staticMetadataManager;
@@ -57,11 +58,11 @@ public class PolarisRegistration implements Registration, ServiceInstance {
private final String host;
public PolarisRegistration(
- DiscoveryPropertiesAutoConfiguration discoveryPropertiesAutoConfiguration,
- PolarisDiscoveryProperties polarisDiscoveryProperties, SDKContext context,
- StaticMetadataManager staticMetadataManager) {
- this.discoveryPropertiesAutoConfiguration = discoveryPropertiesAutoConfiguration;
+ PolarisDiscoveryProperties polarisDiscoveryProperties,
+ @Nullable ConsulContextProperties consulContextProperties,
+ SDKContext context, StaticMetadataManager staticMetadataManager) {
this.polarisDiscoveryProperties = polarisDiscoveryProperties;
+ this.consulContextProperties = consulContextProperties;
this.polarisContext = context;
this.staticMetadataManager = staticMetadataManager;
@@ -121,14 +122,23 @@ 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/PolarisServiceRegistry.java b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/PolarisServiceRegistry.java
index 69bedfbd..4dfc0a9c 100644
--- a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/PolarisServiceRegistry.java
+++ b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/PolarisServiceRegistry.java
@@ -51,9 +51,9 @@ import static org.springframework.util.ReflectionUtils.rethrowRuntimeException;
*/
public class PolarisServiceRegistry implements ServiceRegistry {
- private static final Logger log = LoggerFactory.getLogger(PolarisServiceRegistry.class);
+ private static final Logger LOGGER = LoggerFactory.getLogger(PolarisServiceRegistry.class);
- private static final int ttl = 5;
+ private static final int TTL = 5;
private final PolarisDiscoveryProperties polarisDiscoveryProperties;
@@ -83,7 +83,7 @@ public class PolarisServiceRegistry implements ServiceRegistry {
public void register(Registration registration) {
if (StringUtils.isBlank(registration.getServiceId())) {
- log.warn("No service to register for polaris client...");
+ LOGGER.warn("No service to register for polaris client...");
return;
}
// Register instance.
@@ -98,7 +98,7 @@ public class PolarisServiceRegistry implements ServiceRegistry {
instanceRegisterRequest.setZone(staticMetadataManager.getZone());
instanceRegisterRequest.setCampus(staticMetadataManager.getCampus());
if (null != heartbeatExecutor) {
- instanceRegisterRequest.setTtl(ttl);
+ instanceRegisterRequest.setTtl(TTL);
}
instanceRegisterRequest.setMetadata(registration.getMetadata());
instanceRegisterRequest.setProtocol(polarisDiscoveryProperties.getProtocol());
@@ -106,7 +106,7 @@ public class PolarisServiceRegistry implements ServiceRegistry {
try {
ProviderAPI providerClient = polarisDiscoveryHandler.getProviderAPI();
providerClient.register(instanceRegisterRequest);
- log.info("polaris registry, {} {} {}:{} {} register finished", polarisDiscoveryProperties.getNamespace(),
+ LOGGER.info("polaris registry, {} {} {}:{} {} register finished", polarisDiscoveryProperties.getNamespace(),
registration.getServiceId(), registration.getHost(), registration.getPort(),
staticMetadataManager.getMergedStaticMetadata());
@@ -118,7 +118,7 @@ public class PolarisServiceRegistry implements ServiceRegistry {
}
}
catch (Exception e) {
- log.error("polaris registry, {} register failed...{},", registration.getServiceId(), registration, e);
+ LOGGER.error("polaris registry, {} register failed...{},", registration.getServiceId(), registration, e);
rethrowRuntimeException(e);
}
}
@@ -126,10 +126,10 @@ public class PolarisServiceRegistry implements ServiceRegistry {
@Override
public void deregister(Registration registration) {
- log.info("De-registering from Polaris Server now...");
+ LOGGER.info("De-registering from Polaris Server now...");
if (StringUtils.isEmpty(registration.getServiceId())) {
- log.warn("No dom to de-register for polaris client...");
+ LOGGER.warn("No dom to de-register for polaris client...");
return;
}
@@ -145,24 +145,22 @@ public class PolarisServiceRegistry implements ServiceRegistry {
providerClient.deRegister(deRegisterRequest);
}
catch (Exception e) {
- log.error("ERR_POLARIS_DEREGISTER, de-register failed...{},", registration, e);
+ LOGGER.error("ERR_POLARIS_DEREGISTER, de-register failed...{},", registration, e);
}
finally {
if (null != heartbeatExecutor) {
heartbeatExecutor.shutdown();
}
}
- log.info("De-registration finished.");
+ LOGGER.info("De-registration finished.");
}
@Override
public void close() {
-
}
@Override
public void setStatus(Registration registration, String status) {
-
}
@Override
@@ -204,7 +202,7 @@ public class PolarisServiceRegistry implements ServiceRegistry {
heartbeatRequest.getPort(), healthCheckEndpoint);
if (!OkHttpUtil.get(healthCheckUrl, null)) {
- log.error("backend service health check failed. health check endpoint = {}",
+ LOGGER.error("backend service health check failed. health check endpoint = {}",
healthCheckEndpoint);
return;
}
@@ -213,12 +211,11 @@ public class PolarisServiceRegistry implements ServiceRegistry {
polarisDiscoveryHandler.getProviderAPI().heartbeat(heartbeatRequest);
}
catch (PolarisException e) {
- log.error("polaris heartbeat[{}]", e.getCode(), e);
+ LOGGER.error("polaris heartbeat[{}]", e.getCode(), e);
}
catch (Exception e) {
- log.error("polaris heartbeat runtime error", e);
+ LOGGER.error("polaris heartbeat runtime error", e);
}
- }, ttl, ttl, TimeUnit.SECONDS);
+ }, TTL, TTL, TimeUnit.SECONDS);
}
-
}
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 f6a689a5..b5203f97 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,12 +19,13 @@
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.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;
@@ -58,11 +59,10 @@ public class PolarisServiceRegistryAutoConfiguration {
@Bean
@ConditionalOnBean(AutoServiceRegistrationProperties.class)
public PolarisRegistration polarisRegistration(
- DiscoveryPropertiesAutoConfiguration discoveryPropertiesAutoConfiguration,
- PolarisDiscoveryProperties polarisDiscoveryProperties, SDKContext context,
- StaticMetadataManager staticMetadataManager) {
- return new PolarisRegistration(discoveryPropertiesAutoConfiguration,
- polarisDiscoveryProperties, context, staticMetadataManager);
+ PolarisDiscoveryProperties polarisDiscoveryProperties,
+ @Autowired(required = false) ConsulContextProperties consulContextProperties,
+ SDKContext context, StaticMetadataManager staticMetadataManager) {
+ return new PolarisRegistration(polarisDiscoveryProperties, consulContextProperties, context, staticMetadataManager);
}
@Bean
diff --git a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/util/OkHttpUtil.java b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/util/OkHttpUtil.java
index b0718683..df9db0be 100644
--- a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/util/OkHttpUtil.java
+++ b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/util/OkHttpUtil.java
@@ -36,7 +36,7 @@ public final class OkHttpUtil {
/**
* Logger.
*/
- public final static Logger logger = LoggerFactory.getLogger(OkHttpUtil.class);
+ public final static Logger LOGGER = LoggerFactory.getLogger(OkHttpUtil.class);
/**
* client.
@@ -62,12 +62,12 @@ public final class OkHttpUtil {
if (response.isSuccessful() && Objects.nonNull(response.body())) {
String result = response.body().string();
- logger.debug("exec get request, url: {} success,response data: {}", url, result);
+ LOGGER.debug("exec get request, url: {} success,response data: {}", url, result);
return true;
}
}
catch (Exception e) {
- logger.error("exec get request,url: {} failed!", url, e);
+ LOGGER.error("exec get request,url: {} failed!", url, e);
}
return false;
}
@@ -86,5 +86,4 @@ public final class OkHttpUtil {
});
}
}
-
}
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 8f89a831..b053a673 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
@@ -65,9 +65,6 @@ public class DiscoveryPropertiesAutoConfigurationTest {
.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();
});
}
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 cd32ec09..bcbaa35c 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);
+ polarisRegistration = new PolarisRegistration(polarisDiscoveryProperties, consulContextProperties,
+ polarisContext, staticMetadataManager);
}
@Test
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 83cc00c9..a9dd140e 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,19 +92,18 @@ 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;
}
-
}
/**
* 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,
@@ -113,7 +113,5 @@ public class PolarisRateLimitAutoConfiguration {
return new QuotaCheckReactiveFilter(limitAPI, labelResolver,
polarisRateLimitProperties, rateLimitRuleLabelResolver);
}
-
}
-
}
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 b0c097a6..75db264c 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;
@@ -45,5 +45,4 @@ public class RateLimitConfigModifier implements PolarisConfigModifier {
public int getOrder() {
return ContextConstant.ModifierOrder.CIRCUIT_BREAKER_ORDER;
}
-
}
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 f3e4c3b0..cd87fd72 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/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 387fe510..076136b7 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-ratelimit/src/test/java/com/tencent/cloud/polaris/ratelimit/endpoint/PolarisRateLimitRuleEndpointTests.java b/spring-cloud-starter-tencent-polaris-ratelimit/src/test/java/com/tencent/cloud/polaris/ratelimit/endpoint/PolarisRateLimitRuleEndpointTests.java
index d5d7e6fd..9f9c50b6 100644
--- a/spring-cloud-starter-tencent-polaris-ratelimit/src/test/java/com/tencent/cloud/polaris/ratelimit/endpoint/PolarisRateLimitRuleEndpointTests.java
+++ b/spring-cloud-starter-tencent-polaris-ratelimit/src/test/java/com/tencent/cloud/polaris/ratelimit/endpoint/PolarisRateLimitRuleEndpointTests.java
@@ -51,7 +51,7 @@ import static org.mockito.Mockito.when;
@RunWith(MockitoJUnitRunner.class)
public class PolarisRateLimitRuleEndpointTests {
- private WebApplicationContextRunner contextRunner = new WebApplicationContextRunner()
+ private final WebApplicationContextRunner contextRunner = new WebApplicationContextRunner()
.withConfiguration(AutoConfigurations.of(
PolarisRateLimitRuleEndpointTests.PolarisRateLimitAutoConfiguration.class,
PolarisRateLimitRuleEndpointAutoConfiguration.class,
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 7252ec1b..fe77ec3e 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
@@ -34,7 +34,7 @@ import org.springframework.lang.Nullable;
* Auto configuration for feign components.
* @author lepdou 2022-07-04
*/
-@Configuration
+@Configuration(proxyBeanMethods = false)
@ConditionalOnClass(name = {"feign.RequestInterceptor"})
public class FeignAutoConfiguration {
@@ -44,5 +44,4 @@ public class FeignAutoConfiguration {
RouterRuleLabelResolver routerRuleLabelResolver) {
return new RouterLabelFeignInterceptor(routerLabelResolvers, metadataLocalProperties, routerRuleLabelResolver);
}
-
}
diff --git a/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/config/LoadBalancerConfiguration.java b/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/config/LoadBalancerConfiguration.java
index 6d02df9b..e3ffc6b0 100644
--- a/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/config/LoadBalancerConfiguration.java
+++ b/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/config/LoadBalancerConfiguration.java
@@ -46,10 +46,10 @@ public class LoadBalancerConfiguration {
*/
private static final int REACTIVE_SERVICE_INSTANCE_SUPPLIER_ORDER = 193827465;
- @Configuration
+ @Configuration(proxyBeanMethods = false)
@ConditionalOnReactiveDiscoveryEnabled
@Order(REACTIVE_SERVICE_INSTANCE_SUPPLIER_ORDER)
- static class PolarisReactiveSupportConfiguration {
+ protected static class PolarisReactiveSupportConfiguration {
@Bean
@ConditionalOnBean(ReactiveDiscoveryClient.class)
@@ -69,10 +69,10 @@ public class LoadBalancerConfiguration {
}
- @Configuration
+ @Configuration(proxyBeanMethods = false)
@ConditionalOnBlockingDiscoveryEnabled
@Order(REACTIVE_SERVICE_INSTANCE_SUPPLIER_ORDER + 1)
- static class PolarisBlockingSupportConfiguration {
+ protected static class PolarisBlockingSupportConfiguration {
@Bean
@ConditionalOnBean(DiscoveryClient.class)
diff --git a/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/config/PolarisRuleBasedRouterProperties.java b/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/config/PolarisRuleBasedRouterProperties.java
index 89b4bead..8bd4a13c 100644
--- a/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/config/PolarisRuleBasedRouterProperties.java
+++ b/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/config/PolarisRuleBasedRouterProperties.java
@@ -44,5 +44,4 @@ public class PolarisRuleBasedRouterProperties {
"enabled=" + enabled +
'}';
}
-
}
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 ef765fbd..700e43b7 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
@@ -37,7 +37,7 @@ import static org.springframework.core.Ordered.HIGHEST_PRECEDENCE;
*
*@author lepdou 2022-05-11
*/
-@Configuration
+@Configuration(proxyBeanMethods = false)
@LoadBalancerClients(defaultConfiguration = LoadBalancerConfiguration.class)
@Import({PolarisNearByRouterProperties.class, PolarisMetadataRouterProperties.class, PolarisRuleBasedRouterProperties.class})
public class RouterAutoConfiguration {
diff --git a/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/scg/PolarisReactiveLoadBalancerClientFilter.java b/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/scg/PolarisReactiveLoadBalancerClientFilter.java
index 479862bf..24bfba30 100644
--- a/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/scg/PolarisReactiveLoadBalancerClientFilter.java
+++ b/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/scg/PolarisReactiveLoadBalancerClientFilter.java
@@ -21,7 +21,6 @@ package com.tencent.cloud.polaris.router.scg;
import java.io.UnsupportedEncodingException;
import java.net.URI;
import java.net.URLEncoder;
-import java.nio.charset.StandardCharsets;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
@@ -65,6 +64,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.support.ServerWebExchangeUtils.GATEWAY_LOADBALANCER_RESPONSE_ATTR;
import static org.springframework.cloud.gateway.support.ServerWebExchangeUtils.GATEWAY_REQUEST_URL_ATTR;
import static org.springframework.cloud.gateway.support.ServerWebExchangeUtils.GATEWAY_SCHEME_PREFIX_ATTR;
@@ -76,7 +76,7 @@ import static org.springframework.cloud.gateway.support.ServerWebExchangeUtils.a
*@author lepdou 2022-06-20
*/
public class PolarisReactiveLoadBalancerClientFilter extends ReactiveLoadBalancerClientFilter {
- private static final Logger log = LoggerFactory.getLogger(PolarisReactiveLoadBalancerClientFilter.class);
+ private static final Logger LOGGER = LoggerFactory.getLogger(PolarisReactiveLoadBalancerClientFilter.class);
private final LoadBalancerClientFactory clientFactory;
private final GatewayLoadBalancerProperties gatewayLoadBalancerProperties;
@@ -114,8 +114,8 @@ public class PolarisReactiveLoadBalancerClientFilter extends ReactiveLoadBalance
// preserve the original url
addOriginalRequestUrl(exchange, url);
- if (log.isTraceEnabled()) {
- log.trace(ReactiveLoadBalancerClientFilter.class.getSimpleName() + " url before: " + url);
+ if (LOGGER.isTraceEnabled()) {
+ LOGGER.trace(ReactiveLoadBalancerClientFilter.class.getSimpleName() + " url before: " + url);
}
URI requestUri = exchange.getAttribute(GATEWAY_REQUEST_URL_ATTR);
@@ -158,8 +158,8 @@ public class PolarisReactiveLoadBalancerClientFilter extends ReactiveLoadBalance
URI requestUrl = reconstructURI(serviceInstance, uri);
- if (log.isTraceEnabled()) {
- log.trace("LoadBalancerClientFilter url chosen: " + requestUrl);
+ if (LOGGER.isTraceEnabled()) {
+ LOGGER.trace("LoadBalancerClientFilter url chosen: " + requestUrl);
}
exchange.getAttributes().put(GATEWAY_REQUEST_URL_ATTR, requestUrl);
exchange.getAttributes().put(GATEWAY_LOADBALANCER_RESPONSE_ATTR, response);
@@ -210,10 +210,10 @@ public class PolarisReactiveLoadBalancerClientFilter extends ReactiveLoadBalance
Map routerLabels = genRouterLabels(exchange, peerServiceName);
String encodedLabelsContent;
try {
- encodedLabelsContent = URLEncoder.encode(JacksonUtils.serialize2Json(routerLabels), StandardCharsets.UTF_8.name());
+ encodedLabelsContent = URLEncoder.encode(JacksonUtils.serialize2Json(routerLabels), UTF_8);
}
catch (UnsupportedEncodingException e) {
- throw new RuntimeException("unsupported charset exception " + StandardCharsets.UTF_8.name());
+ throw new RuntimeException("unsupported charset exception " + UTF_8);
}
return encodedLabelsContent;
}
@@ -238,7 +238,7 @@ public class PolarisReactiveLoadBalancerClientFilter extends ReactiveLoadBalance
}
}
catch (Throwable t) {
- log.error("[SCT][Router] revoke RouterLabelResolver occur some exception. ", t);
+ LOGGER.error("[SCT][Router] revoke RouterLabelResolver occur some exception. ", t);
}
});
}
diff --git a/spring-cloud-starter-tencent-polaris-router/src/test/java/com/tencent/cloud/polaris/router/scg/PolarisReactiveLoadBalancerClientFilterTest.java b/spring-cloud-starter-tencent-polaris-router/src/test/java/com/tencent/cloud/polaris/router/scg/PolarisReactiveLoadBalancerClientFilterTest.java
index 1ed4813f..6be6dce0 100644
--- a/spring-cloud-starter-tencent-polaris-router/src/test/java/com/tencent/cloud/polaris/router/scg/PolarisReactiveLoadBalancerClientFilterTest.java
+++ b/spring-cloud-starter-tencent-polaris-router/src/test/java/com/tencent/cloud/polaris/router/scg/PolarisReactiveLoadBalancerClientFilterTest.java
@@ -20,7 +20,6 @@ package com.tencent.cloud.polaris.router.scg;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
-import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -54,6 +53,7 @@ import org.springframework.mock.http.server.reactive.MockServerHttpRequest;
import org.springframework.mock.web.server.MockServerWebExchange;
import org.springframework.util.CollectionUtils;
+import static com.tencent.cloud.common.constant.ContextConstant.UTF_8;
import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.Mockito.when;
@@ -135,7 +135,7 @@ public class PolarisReactiveLoadBalancerClientFilterTest {
List routerHeaders = headers.get(RouterConstants.ROUTER_LABEL_HEADER);
Assert.assertFalse(CollectionUtils.isEmpty(routerHeaders));
- Map routerLabels = JacksonUtils.deserialize2Map(URLDecoder.decode(routerHeaders.get(0), StandardCharsets.UTF_8.name()));
+ Map routerLabels = JacksonUtils.deserialize2Map(URLDecoder.decode(routerHeaders.get(0), UTF_8));
Assert.assertEquals("v1", routerLabels.get("${http.header.k1}"));
Assert.assertEquals("zhangsan", routerLabels.get("${http.query.userid}"));
Assert.assertEquals("blue", routerLabels.get("env"));
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 71ce1e88..8aa7079c 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 0271297e..9874b77d 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
@@ -33,7 +33,7 @@ import org.springframework.lang.Nullable;
*
* @author Haotian Zhang
*/
-@Configuration
+@Configuration(proxyBeanMethods = false)
public class MetadataAutoConfiguration {
/**
@@ -54,15 +54,13 @@ public class MetadataAutoConfiguration {
/**
* Create when gateway application is SCG.
*/
- @Configuration
+ @Configuration(proxyBeanMethods = false)
@ConditionalOnClass(name = "org.springframework.cloud.gateway.filter.GlobalFilter")
- static class MetadataScgFilterConfig {
+ protected static class MetadataScgFilterConfig {
@Bean
public GlobalFilter metadataFirstScgFilter() {
return new MetadataFirstScgFilter();
}
-
}
-
}
diff --git a/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/metadata/config/MetadataLocalProperties.java b/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/metadata/config/MetadataLocalProperties.java
index e65a80cc..0d0039bc 100644
--- a/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/metadata/config/MetadataLocalProperties.java
+++ b/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/metadata/config/MetadataLocalProperties.java
@@ -64,5 +64,4 @@ public class MetadataLocalProperties {
public void setTransitive(List transitive) {
this.transitive = transitive;
}
-
}
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 1133bb35..0faf3d66 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) {
@@ -50,5 +49,4 @@ public final class AddressUtils {
}
return addressList;
}
-
}
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 9c6aff74..b611cc04 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;
}
@@ -63,5 +64,4 @@ public class ApplicationContextAwareUtils implements ApplicationContextAware {
public static String getProperties(String key, String defaultValue) {
return applicationContext.getEnvironment().getProperty(key, defaultValue);
}
-
}
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 0bb96bae..609026dc 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
@@ -42,7 +42,6 @@ public final class JacksonUtils {
private static final Logger LOG = LoggerFactory.getLogger(JacksonUtils.class);
private JacksonUtils() {
-
}
/**
@@ -84,5 +83,4 @@ public final class JacksonUtils {
throw new RuntimeException("Json to map failed.", e);
}
}
-
}
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 6c4a3353..ef706673 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) {
@@ -48,5 +47,4 @@ public final class ReflectionUtils {
}
return null;
}
-
}
diff --git a/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/util/ResourceFileUtils.java b/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/util/ResourceFileUtils.java
index b5ea45d5..66f8ae6c 100644
--- a/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/util/ResourceFileUtils.java
+++ b/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/util/ResourceFileUtils.java
@@ -46,5 +46,4 @@ public final class ResourceFileUtils {
}
return "";
}
-
}
diff --git a/spring-cloud-tencent-examples/polaris-config-example/src/main/java/com/tencent/cloud/polaris/config/example/Person.java b/spring-cloud-tencent-examples/polaris-config-example/src/main/java/com/tencent/cloud/polaris/config/example/Person.java
index 1d97d1fb..1a88235d 100644
--- a/spring-cloud-tencent-examples/polaris-config-example/src/main/java/com/tencent/cloud/polaris/config/example/Person.java
+++ b/spring-cloud-tencent-examples/polaris-config-example/src/main/java/com/tencent/cloud/polaris/config/example/Person.java
@@ -54,5 +54,4 @@ public class Person {
public String toString() {
return "User{" + "name='" + name + '\'' + ", age=" + age + '}';
}
-
}
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 eae57192..c603c3ce 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.
*
@@ -64,8 +65,8 @@ public class GatewayCalleeController {
@RequestMapping("/echo")
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 eae57192..c603c3ce 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.
*
@@ -64,8 +65,8 @@ public class GatewayCalleeController {
@RequestMapping("/echo")
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/config/PolarisContextPostConfiguration.java b/spring-cloud-tencent-polaris-context/src/main/java/com/tencent/cloud/polaris/context/config/PolarisContextPostConfiguration.java
index f5539746..773667ca 100644
--- a/spring-cloud-tencent-polaris-context/src/main/java/com/tencent/cloud/polaris/context/config/PolarisContextPostConfiguration.java
+++ b/spring-cloud-tencent-polaris-context/src/main/java/com/tencent/cloud/polaris/context/config/PolarisContextPostConfiguration.java
@@ -29,7 +29,7 @@ import org.springframework.context.annotation.Configuration;
* Post-initialization operations after the application initialization phase is completed.
*@author lepdou 2022-06-28
*/
-@Configuration
+@Configuration(proxyBeanMethods = false)
public class PolarisContextPostConfiguration {
@Bean
diff --git a/spring-cloud-tencent-polaris-context/src/main/java/com/tencent/cloud/polaris/context/config/PolarisContextProperties.java b/spring-cloud-tencent-polaris-context/src/main/java/com/tencent/cloud/polaris/context/config/PolarisContextProperties.java
index 1e510315..6ca48a5f 100644
--- a/spring-cloud-tencent-polaris-context/src/main/java/com/tencent/cloud/polaris/context/config/PolarisContextProperties.java
+++ b/spring-cloud-tencent-polaris-context/src/main/java/com/tencent/cloud/polaris/context/config/PolarisContextProperties.java
@@ -132,5 +132,4 @@ public class PolarisContextProperties {
public void setService(String service) {
this.service = service;
}
-
}
diff --git a/spring-cloud-tencent-polaris-loadbalancer/src/main/java/com/tencent/cloud/polaris/loadbalancer/PolarisLoadBalancer.java b/spring-cloud-tencent-polaris-loadbalancer/src/main/java/com/tencent/cloud/polaris/loadbalancer/PolarisLoadBalancer.java
index cfed4fb8..87475d5a 100644
--- a/spring-cloud-tencent-polaris-loadbalancer/src/main/java/com/tencent/cloud/polaris/loadbalancer/PolarisLoadBalancer.java
+++ b/spring-cloud-tencent-polaris-loadbalancer/src/main/java/com/tencent/cloud/polaris/loadbalancer/PolarisLoadBalancer.java
@@ -53,7 +53,7 @@ import org.springframework.cloud.loadbalancer.core.ServiceInstanceListSupplier;
*/
public class PolarisLoadBalancer extends RoundRobinLoadBalancer {
- private static final Logger log = LoggerFactory.getLogger(PolarisLoadBalancer.class);
+ private static final Logger LOGGER = LoggerFactory.getLogger(PolarisLoadBalancer.class);
private final String serviceId;
@@ -61,7 +61,7 @@ public class PolarisLoadBalancer extends RoundRobinLoadBalancer {
private final RouterAPI routerAPI;
- private ObjectProvider supplierObjectProvider;
+ private final ObjectProvider supplierObjectProvider;
public PolarisLoadBalancer(String serviceId, ObjectProvider supplierObjectProvider,
PolarisLoadBalancerProperties loadBalancerProperties, RouterAPI routerAPI) {
@@ -92,7 +92,7 @@ public class PolarisLoadBalancer extends RoundRobinLoadBalancer {
private Response getInstanceResponse(List serviceInstances) {
if (serviceInstances.isEmpty()) {
- log.warn("No servers available for service: " + this.serviceId);
+ LOGGER.warn("No servers available for service: " + this.serviceId);
return new EmptyResponse();
}
@@ -106,9 +106,8 @@ public class PolarisLoadBalancer extends RoundRobinLoadBalancer {
return new DefaultResponse(new PolarisServiceInstance(response.getTargetInstance()));
}
catch (Exception e) {
- log.warn("PolarisRoutingLoadbalancer error", e);
+ LOGGER.warn("PolarisRoutingLoadbalancer error", e);
return new EmptyResponse();
}
}
-
}
diff --git a/spring-cloud-tencent-polaris-loadbalancer/src/main/java/com/tencent/cloud/polaris/loadbalancer/config/PolarisLoadBalancerClientConfiguration.java b/spring-cloud-tencent-polaris-loadbalancer/src/main/java/com/tencent/cloud/polaris/loadbalancer/config/PolarisLoadBalancerClientConfiguration.java
index 600f87f4..e7b17f44 100644
--- a/spring-cloud-tencent-polaris-loadbalancer/src/main/java/com/tencent/cloud/polaris/loadbalancer/config/PolarisLoadBalancerClientConfiguration.java
+++ b/spring-cloud-tencent-polaris-loadbalancer/src/main/java/com/tencent/cloud/polaris/loadbalancer/config/PolarisLoadBalancerClientConfiguration.java
@@ -67,10 +67,10 @@ public class PolarisLoadBalancerClientConfiguration {
loadBalancerProperties, routerAPI);
}
- @Configuration
+ @Configuration(proxyBeanMethods = false)
@ConditionalOnReactiveDiscoveryEnabled
@Order(REACTIVE_SERVICE_INSTANCE_SUPPLIER_ORDER)
- static class PolarisReactiveSupportConfiguration {
+ protected static class PolarisReactiveSupportConfiguration {
@Bean
@ConditionalOnMissingBean
@@ -84,10 +84,10 @@ public class PolarisLoadBalancerClientConfiguration {
}
- @Configuration
+ @Configuration(proxyBeanMethods = false)
@ConditionalOnBlockingDiscoveryEnabled
@Order(REACTIVE_SERVICE_INSTANCE_SUPPLIER_ORDER + 1)
- static class PolarisBlockingSupportConfiguration {
+ protected static class PolarisBlockingSupportConfiguration {
@Bean
@ConditionalOnMissingBean
@@ -98,7 +98,5 @@ public class PolarisLoadBalancerClientConfiguration {
return new PolarisServiceInstanceListSupplier(
ServiceInstanceListSupplier.builder().withBlockingDiscoveryClient().build(context));
}
-
}
-
}
diff --git a/spring-cloud-tencent-polaris-loadbalancer/src/main/java/com/tencent/cloud/polaris/loadbalancer/config/PolarisLoadBalancerProperties.java b/spring-cloud-tencent-polaris-loadbalancer/src/main/java/com/tencent/cloud/polaris/loadbalancer/config/PolarisLoadBalancerProperties.java
index 90d82e07..be592ac1 100644
--- a/spring-cloud-tencent-polaris-loadbalancer/src/main/java/com/tencent/cloud/polaris/loadbalancer/config/PolarisLoadBalancerProperties.java
+++ b/spring-cloud-tencent-polaris-loadbalancer/src/main/java/com/tencent/cloud/polaris/loadbalancer/config/PolarisLoadBalancerProperties.java
@@ -73,5 +73,4 @@ public class PolarisLoadBalancerProperties {
return "PolarisLoadBalancerProperties{" + "loadbalancerEnabled=" + enabled + ", strategy='" + strategy + '\''
+ '}';
}
-
}
diff --git a/spring-cloud-tencent-polaris-loadbalancer/src/test/java/com/tencent/cloud/polaris/loadbalancer/config/PolarisLoadBalancerAutoConfigurationTest.java b/spring-cloud-tencent-polaris-loadbalancer/src/test/java/com/tencent/cloud/polaris/loadbalancer/config/PolarisLoadBalancerAutoConfigurationTest.java
index 5ef38dff..535c1230 100644
--- a/spring-cloud-tencent-polaris-loadbalancer/src/test/java/com/tencent/cloud/polaris/loadbalancer/config/PolarisLoadBalancerAutoConfigurationTest.java
+++ b/spring-cloud-tencent-polaris-loadbalancer/src/test/java/com/tencent/cloud/polaris/loadbalancer/config/PolarisLoadBalancerAutoConfigurationTest.java
@@ -37,7 +37,7 @@ import static org.assertj.core.api.Assertions.assertThat;
*/
public class PolarisLoadBalancerAutoConfigurationTest {
- private ApplicationContextRunner contextRunner = new ApplicationContextRunner()
+ private final ApplicationContextRunner contextRunner = new ApplicationContextRunner()
.withConfiguration(AutoConfigurations.of(PolarisRibbonTest.class,
PolarisLoadBalancerAutoConfiguration.class, PolarisContextAutoConfiguration.class))
.withPropertyValues("spring.application.name=" + SERVICE_PROVIDER).withPropertyValues("server.port=" + PORT)
diff --git a/spring-cloud-tencent-polaris-loadbalancer/src/test/java/com/tencent/cloud/polaris/loadbalancer/config/PolarisRouterAutoConfigurationTest.java b/spring-cloud-tencent-polaris-loadbalancer/src/test/java/com/tencent/cloud/polaris/loadbalancer/config/PolarisRouterAutoConfigurationTest.java
index f296346e..79414600 100644
--- a/spring-cloud-tencent-polaris-loadbalancer/src/test/java/com/tencent/cloud/polaris/loadbalancer/config/PolarisRouterAutoConfigurationTest.java
+++ b/spring-cloud-tencent-polaris-loadbalancer/src/test/java/com/tencent/cloud/polaris/loadbalancer/config/PolarisRouterAutoConfigurationTest.java
@@ -84,5 +84,4 @@ public class PolarisRouterAutoConfigurationTest {
static class PolarisLoadBalancerTest {
}
-
}