From 78f80d5854b732459d78df3bb83fff2a2b86e1a9 Mon Sep 17 00:00:00 2001 From: gzoldou Date: Tue, 17 Mar 2026 09:59:51 +0800 Subject: [PATCH] feat: Upgrade to Spring Cloud 2025.1.1. (#1801) --- .github/workflows/junit.yml | 6 ++++- .github/workflows/license-checker.yml | 2 ++ .github/workflows/snapshot.yml | 5 +++- CHANGELOG.md | 1 + pom.xml | 18 +++++++++----- .../pom.xml | 2 +- .../CustomTransitiveMetadataResolver.java | 2 +- .../metadata/core/TransHeadersTransfer.java | 2 +- .../pojo/SnapshotHttpServletRequest.java | 2 +- ...odeTransferMetadataReactiveFilterTest.java | 3 ++- ...codeTransferMetadataServletFilterTest.java | 3 ++- ...odeTransferMedataFeignInterceptorTest.java | 3 ++- ...codeTransferMedataWebClientFilterTest.java | 3 ++- .../EnhancedRestTemplateInterceptorTest.java | 3 ++- .../core/TransHeadersTransferTest.java | 3 ++- .../pom.xml | 2 +- .../common/PolarisResultToErrorCode.java | 6 ++--- .../ExceptionCircuitBreakerReporter.java | 2 +- .../SuccessCircuitBreakerReporter.java | 2 +- ...PolarisCircuitBreakerHttpResponseTest.java | 10 ++++---- .../reporter/CircuitBreakerPluginTest.java | 4 ++-- .../ExceptionCircuitBreakerReporterTest.java | 6 ++--- .../SuccessCircuitBreakerReporterTest.java | 6 ++--- .../PolarisConfigDataLocationResolver.java | 4 ++-- .../main/resources/META-INF/spring.factories | 2 +- .../annotation/SpringValueProcessorTest.java | 2 +- .../contract/PolarisContractReporter.java | 12 ++++++---- .../contract/tsf/TsfApiMetadataGrapher.java | 7 +++--- .../pom.xml | 2 +- ...sReactiveDiscoveryClientConfiguration.java | 2 +- .../PolarisAutoServiceRegistration.java | 4 +++- .../polaris/registry/PolarisRegistration.java | 8 +++---- ...larisServiceRegistryAutoConfiguration.java | 8 ++++--- .../PolarisAutoServiceRegistrationTest.java | 12 ++++++---- .../registry/PolarisRegistrationTest.java | 4 ++-- .../context/CalleeControllerTests.java | 4 ++-- .../filter/QuotaCheckReactiveFilterTest.java | 6 ++--- .../pom.xml | 4 ++-- .../RouterLabelFeignInterceptorTest.java | 3 ++- ...outerLabelRestTemplateInterceptorTest.java | 3 ++- .../scgmvc/RouterLabelMvcFilterTest.java | 3 ++- spring-cloud-tencent-commons/pom.xml | 7 +++++- .../common/pojo/PolarisServiceInstance.java | 3 +-- .../cloud/common/util/JacksonUtils.java | 24 +++++++++---------- .../springframework/tsf/core/entity/Tag.java | 2 +- .../async/PolarisAsyncPropertiesTest.java | 3 ++- .../metadata/MetadataContextHolderTest.java | 3 ++- .../common/metadata/MetadataContextTest.java | 3 ++- .../config/MetadataLocalPropertiesTest.java | 5 +++- .../common/util/BeanFactoryUtilsTest.java | 6 +++++ .../cloud/common/util/JacksonUtilsTest.java | 2 +- .../cloud/common/util/OkHttpUtilTest.java | 3 ++- spring-cloud-tencent-dependencies/pom.xml | 4 ++-- .../router-grayrelease-lane-gateway/pom.xml | 2 +- .../quickstart-gateway-mvc-service/pom.xml | 2 +- .../quickstart-gateway-service/pom.xml | 2 +- .../demo/consumer/ConsumerApplication.java | 2 +- .../tsf-example/msgw-scg/pom.xml | 2 +- .../controller/SwaggerApiController.java | 10 ++++---- .../pom.xml | 2 +- .../pom.xml | 2 +- .../gateway/context/ContextGatewayFilter.java | 2 +- .../core/model/RequestTransformerPlugin.java | 2 +- .../tsf/gateway/core/util/PluginUtil.java | 2 +- .../model/RequestTransformerPluginTest.java | 2 +- .../pom.xml | 2 +- .../tsf/tls/TlsEnvironmentPostProcessor.java | 2 +- .../main/resources/META-INF/spring.factories | 2 +- .../pom.xml | 2 +- .../spring-cloud-tencent-unit-plugin/pom.xml | 4 ++-- .../tsf/unit/core/TencentUnitContext.java | 2 +- .../mapping/impl/CustomerMappingService.java | 6 ++--- .../core/remote/TencentUnitArchKVLoader.java | 13 +++++----- .../core/remote/TencentUnitGrayKVLoader.java | 13 +++++----- .../remote/TencentUnitRouteRuleKVLoader.java | 13 +++++----- ...olarisContextEnvironmentPostProcessor.java | 2 +- .../tsf/TsfCoreEnvironmentPostProcessor.java | 2 +- .../tsf/TsfLastEnvironmentPostProcessor.java | 2 +- .../PolarisLoggingApplicationListener.java | 2 +- .../main/resources/META-INF/spring.factories | 2 +- spring-cloud-tencent-rpc-enhancement/pom.xml | 4 ++-- .../filter/EnhancedReactiveFilter.java | 2 +- .../scg/EnhancedGatewayGlobalFilter.java | 5 ++-- .../plugin/DefaultEnhancedPluginRunner.java | 2 +- .../plugin/EnhancedPluginContext.java | 4 ++-- .../plugin/PolarisEnhancedPluginUtils.java | 14 +++++------ .../reporter/ExceptionPolarisReporter.java | 4 ++-- .../reporter/SuccessPolarisReporter.java | 4 ++-- .../RpcEnhancementAutoConfigurationTest.java | 3 ++- .../config/RpcEnhancementPropertiesTest.java | 3 ++- .../RpcEnhancementReporterPropertiesTest.java | 3 ++- .../feign/EnhancedFeignClientTest.java | 3 ++- ...edWebClientExchangeFilterFunctionTest.java | 2 +- .../plugin/EnhancedPluginContextTest.java | 4 ++-- .../plugin/ExceptionPolarisReporterTest.java | 2 +- .../plugin/SuccessPolarisReporterTest.java | 2 +- .../stat/config/StatConfigModifierTest.java | 9 ++++--- 97 files changed, 239 insertions(+), 183 deletions(-) diff --git a/.github/workflows/junit.yml b/.github/workflows/junit.yml index 564057e0d..92cb14dc1 100644 --- a/.github/workflows/junit.yml +++ b/.github/workflows/junit.yml @@ -3,6 +3,7 @@ name: Junit Test on: push: branches: + - 2025 - 2024 - 2023 - 2022 @@ -15,6 +16,7 @@ on: - '**.md' pull_request: branches: + - 2025 - 2024 - 2023 - 2022 @@ -41,7 +43,9 @@ jobs: branch_name=${{ github.base_ref }} fi echo $branch_name - if [[ "$branch_name" == "2024" ]]; then + if [[ "$branch_name" == "2025" ]]; then + echo "jdks=[17,21,25]" >> $GITHUB_OUTPUT + elif [[ "$branch_name" == "2024" ]]; then echo "jdks=[17,21]" >> $GITHUB_OUTPUT elif [[ "$branch_name" == "2023" ]]; then echo "jdks=[17,21]" >> $GITHUB_OUTPUT diff --git a/.github/workflows/license-checker.yml b/.github/workflows/license-checker.yml index f6bddb2ff..c5d8d9af8 100644 --- a/.github/workflows/license-checker.yml +++ b/.github/workflows/license-checker.yml @@ -3,6 +3,7 @@ name: License checker on: push: branches: + - 2025 - 2024 - 2023 - 2022 @@ -15,6 +16,7 @@ on: - '**.md' pull_request: branches: + - 2025 - 2024 - 2023 - 2022 diff --git a/.github/workflows/snapshot.yml b/.github/workflows/snapshot.yml index 4be4c5f30..6ab04a582 100644 --- a/.github/workflows/snapshot.yml +++ b/.github/workflows/snapshot.yml @@ -3,6 +3,7 @@ name: Snapshot on: push: branches: + - 2025 - 2024 - 2023 - 2022 @@ -41,7 +42,9 @@ jobs: id: set-jdk run: | shopt -s nocasematch - if [[ "${{ github.ref_name }}" == "2024" ]]; then + if [[ "${{ github.ref_name }}" == "2025" ]]; then + echo "jdk=17" >> $GITHUB_OUTPUT + elif [[ "${{ github.ref_name }}" == "2024" ]]; then echo "jdk=17" >> $GITHUB_OUTPUT elif [[ "${{ github.ref_name }}" == "2023" ]]; then echo "jdk=17" >> $GITHUB_OUTPUT diff --git a/CHANGELOG.md b/CHANGELOG.md index f11c3265c..db79acb57 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,3 +6,4 @@ - [feat: Support Polaris config env value and add related tests](https://github.com/Tencent/spring-cloud-tencent/pull/1797) - [refactor: modify the initialization of ApplicationContextAwareUtils.](https://github.com/Tencent/spring-cloud-tencent/pull/1798) - [feat: support enable/disable cloud location provider via configuration.](https://github.com/Tencent/spring-cloud-tencent/pull/1799) +- [feat: Upgrade to Spring Cloud 2025.1.1.](https://github.com/Tencent/spring-cloud-tencent/pull/1801) diff --git a/pom.xml b/pom.xml index 604427d78..af6d81e74 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ org.springframework.cloud spring-cloud-build - 4.2.4 + 5.0.1 4.0.0 @@ -90,22 +90,22 @@ - 2.1.2.0-2024.0.3-SNAPSHOT + 2.1.2.0-2025.1.1-SNAPSHOT - 6.2.15 + 7.0.3 - 3.4.12 + 4.0.2 - 2024.0.3 + 2025.1.1 2.0.2 - 0.8.12 + 0.8.14 3.4.0 0.8.0 @@ -193,6 +193,12 @@ reactor-test test + + + org.springframework.boot + spring-boot-starter-actuator + test + diff --git a/spring-cloud-starter-tencent-metadata-transfer/pom.xml b/spring-cloud-starter-tencent-metadata-transfer/pom.xml index 31e702853..a5b7aa919 100644 --- a/spring-cloud-starter-tencent-metadata-transfer/pom.xml +++ b/spring-cloud-starter-tencent-metadata-transfer/pom.xml @@ -23,7 +23,7 @@ org.springframework.cloud - spring-cloud-starter-gateway + spring-cloud-starter-gateway-server-webflux true diff --git a/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/CustomTransitiveMetadataResolver.java b/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/CustomTransitiveMetadataResolver.java index aaf703333..0b3041eae 100644 --- a/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/CustomTransitiveMetadataResolver.java +++ b/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/CustomTransitiveMetadataResolver.java @@ -44,7 +44,7 @@ public final class CustomTransitiveMetadataResolver { Map result = new HashMap<>(); HttpHeaders headers = exchange.getRequest().getHeaders(); - for (Map.Entry> entry : headers.entrySet()) { + for (Map.Entry> entry : headers.headerSet()) { String key = entry.getKey(); if (StringUtils.isBlank(key)) { continue; diff --git a/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/TransHeadersTransfer.java b/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/TransHeadersTransfer.java index f36a3bef2..aa7d63b3d 100644 --- a/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/TransHeadersTransfer.java +++ b/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/TransHeadersTransfer.java @@ -84,7 +84,7 @@ public final class TransHeadersTransfer { if (transHeaders != null) { String[] transHeaderArray = transHeaders.split(","); HttpHeaders headers = serverHttpRequest.getHeaders(); - Set headerKeys = headers.keySet(); + Set headerKeys = headers.headerNames(); for (String httpHeader : headerKeys) { for (String transHeader : transHeaderArray) { if (transHeader.equals(httpHeader)) { diff --git a/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/pojo/SnapshotHttpServletRequest.java b/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/pojo/SnapshotHttpServletRequest.java index 40035c763..4a6262957 100644 --- a/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/pojo/SnapshotHttpServletRequest.java +++ b/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/pojo/SnapshotHttpServletRequest.java @@ -149,7 +149,7 @@ public final class SnapshotHttpServletRequest implements HttpServletRequest { @Override public Enumeration getHeaderNames() { - return Collections.enumeration(headers.keySet()); + return Collections.enumeration(headers.headerNames()); } @Override diff --git a/spring-cloud-starter-tencent-metadata-transfer/src/test/java/com/tencent/cloud/metadata/core/DecodeTransferMetadataReactiveFilterTest.java b/spring-cloud-starter-tencent-metadata-transfer/src/test/java/com/tencent/cloud/metadata/core/DecodeTransferMetadataReactiveFilterTest.java index 19460df0f..2853c737e 100644 --- a/spring-cloud-starter-tencent-metadata-transfer/src/test/java/com/tencent/cloud/metadata/core/DecodeTransferMetadataReactiveFilterTest.java +++ b/spring-cloud-starter-tencent-metadata-transfer/src/test/java/com/tencent/cloud/metadata/core/DecodeTransferMetadataReactiveFilterTest.java @@ -45,7 +45,8 @@ import static org.springframework.boot.test.context.SpringBootTest.WebEnvironmen @ExtendWith(SpringExtension.class) @SpringBootTest(webEnvironment = MOCK, classes = DecodeTransferMetadataServletFilterTest.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", + "spring.autoconfigure.exclude=org.springframework.cloud.gateway.config.GatewayAutoConfiguration,org.springframework.cloud.gateway.config.GatewayClassPathWarningAutoConfiguration,org.springframework.cloud.gateway.config.GatewayMetricsAutoConfiguration"}) public class DecodeTransferMetadataReactiveFilterTest { @Autowired diff --git a/spring-cloud-starter-tencent-metadata-transfer/src/test/java/com/tencent/cloud/metadata/core/DecodeTransferMetadataServletFilterTest.java b/spring-cloud-starter-tencent-metadata-transfer/src/test/java/com/tencent/cloud/metadata/core/DecodeTransferMetadataServletFilterTest.java index d47ba7960..45760b075 100644 --- a/spring-cloud-starter-tencent-metadata-transfer/src/test/java/com/tencent/cloud/metadata/core/DecodeTransferMetadataServletFilterTest.java +++ b/spring-cloud-starter-tencent-metadata-transfer/src/test/java/com/tencent/cloud/metadata/core/DecodeTransferMetadataServletFilterTest.java @@ -46,7 +46,8 @@ import static org.springframework.boot.test.context.SpringBootTest.WebEnvironmen classes = DecodeTransferMetadataServletFilterTest.TestApplication.class, properties = {"spring.config.location = classpath:application-test.yml", "spring.main.web-application-type = servlet", - "spring.cloud.gateway.enabled = false"}) + "spring.cloud.gateway.enabled = false", + "spring.autoconfigure.exclude=org.springframework.cloud.gateway.config.GatewayAutoConfiguration,org.springframework.cloud.gateway.config.GatewayClassPathWarningAutoConfiguration,org.springframework.cloud.gateway.config.GatewayMetricsAutoConfiguration"}) public class DecodeTransferMetadataServletFilterTest { @Autowired 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 c69b68f6d..81160baa2 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 @@ -49,7 +49,8 @@ import static org.springframework.boot.test.context.SpringBootTest.WebEnvironmen classes = EncodeTransferMedataFeignInterceptorTest.TestApplication.class, properties = {"server.port=48081", "spring.config.location = classpath:application-test.yml", "spring.main.web-application-type = servlet", - "spring.cloud.gateway.enabled = false"}) + "spring.cloud.gateway.enabled = false", + "spring.autoconfigure.exclude=org.springframework.cloud.gateway.config.GatewayAutoConfiguration,org.springframework.cloud.gateway.config.GatewayClassPathWarningAutoConfiguration,org.springframework.cloud.gateway.config.GatewayMetricsAutoConfiguration"}) public class EncodeTransferMedataFeignInterceptorTest { @Autowired diff --git a/spring-cloud-starter-tencent-metadata-transfer/src/test/java/com/tencent/cloud/metadata/core/EncodeTransferMedataWebClientFilterTest.java b/spring-cloud-starter-tencent-metadata-transfer/src/test/java/com/tencent/cloud/metadata/core/EncodeTransferMedataWebClientFilterTest.java index bd4aa9ea9..4dd5cd259 100644 --- a/spring-cloud-starter-tencent-metadata-transfer/src/test/java/com/tencent/cloud/metadata/core/EncodeTransferMedataWebClientFilterTest.java +++ b/spring-cloud-starter-tencent-metadata-transfer/src/test/java/com/tencent/cloud/metadata/core/EncodeTransferMedataWebClientFilterTest.java @@ -44,7 +44,8 @@ import static org.springframework.boot.test.context.SpringBootTest.WebEnvironmen @SpringBootTest(webEnvironment = RANDOM_PORT, classes = EncodeTransferMedataWebClientFilterTest.TestApplication.class, properties = {"spring.config.location = classpath:application-test.yml", - "spring.main.web-application-type = reactive"}) + "spring.main.web-application-type = reactive", + "spring.autoconfigure.exclude=org.springframework.cloud.gateway.config.GatewayAutoConfiguration,org.springframework.cloud.gateway.config.GatewayClassPathWarningAutoConfiguration,org.springframework.cloud.gateway.config.GatewayMetricsAutoConfiguration"}) public class EncodeTransferMedataWebClientFilterTest { @Autowired diff --git a/spring-cloud-starter-tencent-metadata-transfer/src/test/java/com/tencent/cloud/metadata/core/EnhancedRestTemplateInterceptorTest.java b/spring-cloud-starter-tencent-metadata-transfer/src/test/java/com/tencent/cloud/metadata/core/EnhancedRestTemplateInterceptorTest.java index 02faad8c2..14d9dfde5 100644 --- a/spring-cloud-starter-tencent-metadata-transfer/src/test/java/com/tencent/cloud/metadata/core/EnhancedRestTemplateInterceptorTest.java +++ b/spring-cloud-starter-tencent-metadata-transfer/src/test/java/com/tencent/cloud/metadata/core/EnhancedRestTemplateInterceptorTest.java @@ -52,7 +52,8 @@ import static org.springframework.boot.test.context.SpringBootTest.WebEnvironmen @SpringBootTest(webEnvironment = RANDOM_PORT, classes = EnhancedRestTemplateInterceptorTest.TestApplication.class, properties = {"spring.config.location = classpath:application-test.yml", - "spring.main.web-application-type = reactive"}) + "spring.main.web-application-type = reactive", + "spring.autoconfigure.exclude=org.springframework.cloud.gateway.config.GatewayAutoConfiguration,org.springframework.cloud.gateway.config.GatewayClassPathWarningAutoConfiguration,org.springframework.cloud.gateway.config.GatewayMetricsAutoConfiguration"}) public class EnhancedRestTemplateInterceptorTest { @Autowired diff --git a/spring-cloud-starter-tencent-metadata-transfer/src/test/java/com/tencent/cloud/metadata/core/TransHeadersTransferTest.java b/spring-cloud-starter-tencent-metadata-transfer/src/test/java/com/tencent/cloud/metadata/core/TransHeadersTransferTest.java index 0cadba99e..ab436cd95 100644 --- a/spring-cloud-starter-tencent-metadata-transfer/src/test/java/com/tencent/cloud/metadata/core/TransHeadersTransferTest.java +++ b/spring-cloud-starter-tencent-metadata-transfer/src/test/java/com/tencent/cloud/metadata/core/TransHeadersTransferTest.java @@ -42,7 +42,8 @@ import static org.springframework.boot.test.context.SpringBootTest.WebEnvironmen @ExtendWith(SpringExtension.class) @SpringBootTest(webEnvironment = RANDOM_PORT, classes = DecodeTransferMetadataServletFilterTest.TestApplication.class, - properties = {"spring.config.location = classpath:application-test.yml"}) + properties = {"spring.config.location = classpath:application-test.yml", + "spring.autoconfigure.exclude=org.springframework.cloud.gateway.config.GatewayAutoConfiguration,org.springframework.cloud.gateway.config.GatewayClassPathWarningAutoConfiguration,org.springframework.cloud.gateway.config.GatewayMetricsAutoConfiguration"}) public class TransHeadersTransferTest { @AfterAll static void afterAll() { diff --git a/spring-cloud-starter-tencent-polaris-circuitbreaker/pom.xml b/spring-cloud-starter-tencent-polaris-circuitbreaker/pom.xml index 9befa1ade..9173e5223 100644 --- a/spring-cloud-starter-tencent-polaris-circuitbreaker/pom.xml +++ b/spring-cloud-starter-tencent-polaris-circuitbreaker/pom.xml @@ -40,7 +40,7 @@ org.springframework.cloud - spring-cloud-starter-gateway + spring-cloud-starter-gateway-server-webflux true diff --git a/spring-cloud-starter-tencent-polaris-circuitbreaker/src/main/java/com/tencent/cloud/polaris/circuitbreaker/common/PolarisResultToErrorCode.java b/spring-cloud-starter-tencent-polaris-circuitbreaker/src/main/java/com/tencent/cloud/polaris/circuitbreaker/common/PolarisResultToErrorCode.java index b778b2139..ede0dd316 100644 --- a/spring-cloud-starter-tencent-polaris-circuitbreaker/src/main/java/com/tencent/cloud/polaris/circuitbreaker/common/PolarisResultToErrorCode.java +++ b/spring-cloud-starter-tencent-polaris-circuitbreaker/src/main/java/com/tencent/cloud/polaris/circuitbreaker/common/PolarisResultToErrorCode.java @@ -40,7 +40,7 @@ public class PolarisResultToErrorCode implements ResultToErrorCode { public int onError(Throwable e) { if (checkClassExist("org.springframework.web.client.RestClientResponseException") && e instanceof RestClientResponseException) { - return ((RestClientResponseException) e).getRawStatusCode(); + return ((RestClientResponseException) e).getStatusCode().value(); } else if (checkClassExist("feign.FeignException") && e instanceof FeignException) { @@ -48,10 +48,10 @@ public class PolarisResultToErrorCode implements ResultToErrorCode { } else if (checkClassExist("org.springframework.web.reactive.function.client.WebClientResponseException") && e instanceof WebClientResponseException) { - return ((WebClientResponseException) e).getRawStatusCode(); + return ((WebClientResponseException) e).getStatusCode().value(); } else if (e instanceof CircuitBreakerStatusCodeException) { - return ((CircuitBreakerStatusCodeException) e).getRawStatusCode(); + return ((CircuitBreakerStatusCodeException) e).getStatusCode().value(); } return -1; } diff --git a/spring-cloud-starter-tencent-polaris-circuitbreaker/src/main/java/com/tencent/cloud/polaris/circuitbreaker/reporter/ExceptionCircuitBreakerReporter.java b/spring-cloud-starter-tencent-polaris-circuitbreaker/src/main/java/com/tencent/cloud/polaris/circuitbreaker/reporter/ExceptionCircuitBreakerReporter.java index 355c68b4d..7c0d636fb 100644 --- a/spring-cloud-starter-tencent-polaris-circuitbreaker/src/main/java/com/tencent/cloud/polaris/circuitbreaker/reporter/ExceptionCircuitBreakerReporter.java +++ b/spring-cloud-starter-tencent-polaris-circuitbreaker/src/main/java/com/tencent/cloud/polaris/circuitbreaker/reporter/ExceptionCircuitBreakerReporter.java @@ -80,7 +80,7 @@ public class ExceptionCircuitBreakerReporter implements EnhancedPlugin { EnhancedRequestContext request = context.getRequest(); ServiceInstance serviceInstance = Optional.ofNullable(context.getTargetServiceInstance()) - .orElse(new DefaultServiceInstance()); + .orElse(new DefaultServiceInstance(null, null, null, 0, false)); ResourceStat resourceStat = PolarisEnhancedPluginUtils.createInstanceResourceStat( serviceInstance.getServiceId(), diff --git a/spring-cloud-starter-tencent-polaris-circuitbreaker/src/main/java/com/tencent/cloud/polaris/circuitbreaker/reporter/SuccessCircuitBreakerReporter.java b/spring-cloud-starter-tencent-polaris-circuitbreaker/src/main/java/com/tencent/cloud/polaris/circuitbreaker/reporter/SuccessCircuitBreakerReporter.java index 632257972..3f5b50ea2 100644 --- a/spring-cloud-starter-tencent-polaris-circuitbreaker/src/main/java/com/tencent/cloud/polaris/circuitbreaker/reporter/SuccessCircuitBreakerReporter.java +++ b/spring-cloud-starter-tencent-polaris-circuitbreaker/src/main/java/com/tencent/cloud/polaris/circuitbreaker/reporter/SuccessCircuitBreakerReporter.java @@ -84,7 +84,7 @@ public class SuccessCircuitBreakerReporter implements EnhancedPlugin { EnhancedRequestContext request = context.getRequest(); EnhancedResponseContext response = context.getResponse(); ServiceInstance serviceInstance = Optional.ofNullable(context.getTargetServiceInstance()) - .orElse(new DefaultServiceInstance()); + .orElse(new DefaultServiceInstance(null, null, null, 0, false)); ResourceStat resourceStat = PolarisEnhancedPluginUtils.createInstanceResourceStat( serviceInstance.getServiceId(), diff --git a/spring-cloud-starter-tencent-polaris-circuitbreaker/src/test/java/com/tencent/cloud/polaris/circuitbreaker/instrument/resttemplate/PolarisCircuitBreakerHttpResponseTest.java b/spring-cloud-starter-tencent-polaris-circuitbreaker/src/test/java/com/tencent/cloud/polaris/circuitbreaker/instrument/resttemplate/PolarisCircuitBreakerHttpResponseTest.java index 2ef04245e..85cf47ef2 100644 --- a/spring-cloud-starter-tencent-polaris-circuitbreaker/src/test/java/com/tencent/cloud/polaris/circuitbreaker/instrument/resttemplate/PolarisCircuitBreakerHttpResponseTest.java +++ b/spring-cloud-starter-tencent-polaris-circuitbreaker/src/test/java/com/tencent/cloud/polaris/circuitbreaker/instrument/resttemplate/PolarisCircuitBreakerHttpResponseTest.java @@ -44,7 +44,7 @@ public class PolarisCircuitBreakerHttpResponseTest { assertThat(response.getStatusCode().value()).isEqualTo(200); assertThat(response.getHeaders()).isNotNull(); - assertThat(response.getHeaders()).isEmpty(); + assertThat(response.getHeaders().isEmpty()).isTrue(); assertThat(response.getBody()).isNull(); } @@ -55,7 +55,7 @@ public class PolarisCircuitBreakerHttpResponseTest { assertThat(response.getStatusCode().value()).isEqualTo(200); assertThat(response.getHeaders()).isNotNull(); - assertThat(response.getHeaders()).isEmpty(); + assertThat(response.getHeaders().isEmpty()).isTrue(); assertThat(response.getBody()).isNotNull(); } @@ -71,8 +71,8 @@ public class PolarisCircuitBreakerHttpResponseTest { assertThat(response.getStatusCode().value()).isEqualTo(200); assertThat(response.getHeaders()).isNotNull(); assertThat(response.getHeaders().size()).isEqualTo(2); - assertThat(response.getHeaders()).containsKey("Content-Type"); - assertThat(response.getHeaders()).containsKey("Authorization"); + assertThat(response.getHeaders().containsHeader("Content-Type")).isTrue(); + assertThat(response.getHeaders().containsHeader("Authorization")).isTrue(); assertThat(response.getBody()).isNotNull(); } @@ -87,7 +87,7 @@ public class PolarisCircuitBreakerHttpResponseTest { assertThat(response.getStatusCode().value()).isEqualTo(200); assertThat(response.getFallbackInfo()).isEqualTo(fallbackInfo); assertThat(response.getHeaders()).isNotNull(); - assertThat(response.getHeaders()).containsKey("Content-Type"); + assertThat(response.getHeaders().containsHeader("Content-Type")).isTrue(); assertThat(response.getBody()).isNotNull(); } diff --git a/spring-cloud-starter-tencent-polaris-circuitbreaker/src/test/java/com/tencent/cloud/polaris/circuitbreaker/reporter/CircuitBreakerPluginTest.java b/spring-cloud-starter-tencent-polaris-circuitbreaker/src/test/java/com/tencent/cloud/polaris/circuitbreaker/reporter/CircuitBreakerPluginTest.java index c86b8eb50..c26fd4ad0 100644 --- a/spring-cloud-starter-tencent-polaris-circuitbreaker/src/test/java/com/tencent/cloud/polaris/circuitbreaker/reporter/CircuitBreakerPluginTest.java +++ b/spring-cloud-starter-tencent-polaris-circuitbreaker/src/test/java/com/tencent/cloud/polaris/circuitbreaker/reporter/CircuitBreakerPluginTest.java @@ -125,7 +125,7 @@ public class CircuitBreakerPluginTest { EnhancedResponseContext response = EnhancedResponseContext.builder() .httpStatus(200) .build(); - DefaultServiceInstance serviceInstance = new DefaultServiceInstance(); + DefaultServiceInstance serviceInstance = new DefaultServiceInstance(null, null, null, 0, false); serviceInstance.setServiceId(SERVICE_PROVIDER); pluginContext.setRequest(request); @@ -157,7 +157,7 @@ public class CircuitBreakerPluginTest { EnhancedResponseContext response = EnhancedResponseContext.builder() .httpStatus(200) .build(); - DefaultServiceInstance serviceInstance = new DefaultServiceInstance(); + DefaultServiceInstance serviceInstance = new DefaultServiceInstance(null, null, null, 0, false); serviceInstance.setServiceId(SERVICE_PROVIDER); pluginContext.setRequest(request); diff --git a/spring-cloud-starter-tencent-polaris-circuitbreaker/src/test/java/com/tencent/cloud/polaris/circuitbreaker/reporter/ExceptionCircuitBreakerReporterTest.java b/spring-cloud-starter-tencent-polaris-circuitbreaker/src/test/java/com/tencent/cloud/polaris/circuitbreaker/reporter/ExceptionCircuitBreakerReporterTest.java index a40185d4a..003521f90 100644 --- a/spring-cloud-starter-tencent-polaris-circuitbreaker/src/test/java/com/tencent/cloud/polaris/circuitbreaker/reporter/ExceptionCircuitBreakerReporterTest.java +++ b/spring-cloud-starter-tencent-polaris-circuitbreaker/src/test/java/com/tencent/cloud/polaris/circuitbreaker/reporter/ExceptionCircuitBreakerReporterTest.java @@ -122,7 +122,7 @@ public class ExceptionCircuitBreakerReporterTest { EnhancedResponseContext response = EnhancedResponseContext.builder() .httpStatus(200) .build(); - DefaultServiceInstance serviceInstance = new DefaultServiceInstance(); + DefaultServiceInstance serviceInstance = new DefaultServiceInstance(null, null, null, 0, false); serviceInstance.setServiceId(SERVICE_PROVIDER); pluginContext.setRequest(request); @@ -162,7 +162,7 @@ public class ExceptionCircuitBreakerReporterTest { EnhancedResponseContext response = EnhancedResponseContext.builder() .httpStatus(300) .build(); - DefaultServiceInstance serviceInstance = new DefaultServiceInstance(); + DefaultServiceInstance serviceInstance = new DefaultServiceInstance(null, null, null, 0, false); serviceInstance.setServiceId(SERVICE_PROVIDER); pluginContext.setRequest(request); @@ -197,7 +197,7 @@ public class ExceptionCircuitBreakerReporterTest { EnhancedResponseContext response = EnhancedResponseContext.builder() .httpStatus(300) .build(); - DefaultServiceInstance serviceInstance = new DefaultServiceInstance(); + DefaultServiceInstance serviceInstance = new DefaultServiceInstance(null, null, null, 0, false); serviceInstance.setServiceId(SERVICE_PROVIDER); pluginContext.setRequest(request); diff --git a/spring-cloud-starter-tencent-polaris-circuitbreaker/src/test/java/com/tencent/cloud/polaris/circuitbreaker/reporter/SuccessCircuitBreakerReporterTest.java b/spring-cloud-starter-tencent-polaris-circuitbreaker/src/test/java/com/tencent/cloud/polaris/circuitbreaker/reporter/SuccessCircuitBreakerReporterTest.java index 540bc51e3..48838ad00 100644 --- a/spring-cloud-starter-tencent-polaris-circuitbreaker/src/test/java/com/tencent/cloud/polaris/circuitbreaker/reporter/SuccessCircuitBreakerReporterTest.java +++ b/spring-cloud-starter-tencent-polaris-circuitbreaker/src/test/java/com/tencent/cloud/polaris/circuitbreaker/reporter/SuccessCircuitBreakerReporterTest.java @@ -137,7 +137,7 @@ public class SuccessCircuitBreakerReporterTest { EnhancedResponseContext response = EnhancedResponseContext.builder() .httpStatus(200) .build(); - DefaultServiceInstance serviceInstance = new DefaultServiceInstance(); + DefaultServiceInstance serviceInstance = new DefaultServiceInstance(null, null, null, 0, false); serviceInstance.setServiceId(SERVICE_PROVIDER); pluginContext.setRequest(request); @@ -176,7 +176,7 @@ public class SuccessCircuitBreakerReporterTest { EnhancedResponseContext response = EnhancedResponseContext.builder() .httpStatus(300) .build(); - DefaultServiceInstance serviceInstance = new DefaultServiceInstance(); + DefaultServiceInstance serviceInstance = new DefaultServiceInstance(null, null, null, 0, false); serviceInstance.setServiceId(SERVICE_PROVIDER); pluginContext.setRequest(request); @@ -210,7 +210,7 @@ public class SuccessCircuitBreakerReporterTest { EnhancedResponseContext response = EnhancedResponseContext.builder() .httpStatus(300) .build(); - DefaultServiceInstance serviceInstance = new DefaultServiceInstance(); + DefaultServiceInstance serviceInstance = new DefaultServiceInstance(null, null, null, 0, false); serviceInstance.setServiceId(SERVICE_PROVIDER); pluginContext.setRequest(request); diff --git a/spring-cloud-starter-tencent-polaris-config/src/main/java/com/tencent/cloud/polaris/config/configdata/PolarisConfigDataLocationResolver.java b/spring-cloud-starter-tencent-polaris-config/src/main/java/com/tencent/cloud/polaris/config/configdata/PolarisConfigDataLocationResolver.java index 0660c1ea9..0e669e05d 100644 --- a/spring-cloud-starter-tencent-polaris-config/src/main/java/com/tencent/cloud/polaris/config/configdata/PolarisConfigDataLocationResolver.java +++ b/spring-cloud-starter-tencent-polaris-config/src/main/java/com/tencent/cloud/polaris/config/configdata/PolarisConfigDataLocationResolver.java @@ -35,8 +35,8 @@ import com.tencent.polaris.client.api.SDKContext; import com.tencent.polaris.factory.config.ConfigurationImpl; import org.apache.commons.logging.Log; -import org.springframework.boot.BootstrapRegistry; -import org.springframework.boot.ConfigurableBootstrapContext; +import org.springframework.boot.bootstrap.BootstrapRegistry; +import org.springframework.boot.bootstrap.ConfigurableBootstrapContext; import org.springframework.boot.context.config.ConfigDataLocation; import org.springframework.boot.context.config.ConfigDataLocationNotFoundException; import org.springframework.boot.context.config.ConfigDataLocationResolver; diff --git a/spring-cloud-starter-tencent-polaris-config/src/main/resources/META-INF/spring.factories b/spring-cloud-starter-tencent-polaris-config/src/main/resources/META-INF/spring.factories index 4ce401abe..95d4c2107 100644 --- a/spring-cloud-starter-tencent-polaris-config/src/main/resources/META-INF/spring.factories +++ b/spring-cloud-starter-tencent-polaris-config/src/main/resources/META-INF/spring.factories @@ -8,6 +8,6 @@ org.springframework.boot.context.config.ConfigDataLoader=\ com.tencent.cloud.polaris.config.configdata.PolarisConfigDataLoader org.springframework.boot.diagnostics.FailureAnalyzer=\ com.tencent.cloud.polaris.config.configdata.PolarisImportExceptionFailureAnalyzer -org.springframework.boot.env.EnvironmentPostProcessor=\ +org.springframework.boot.EnvironmentPostProcessor=\ com.tencent.cloud.polaris.config.configdata.PolarisConfigDataMissingEnvironmentPostProcessor diff --git a/spring-cloud-starter-tencent-polaris-config/src/test/java/com/tencent/cloud/polaris/config/spring/annotation/SpringValueProcessorTest.java b/spring-cloud-starter-tencent-polaris-config/src/test/java/com/tencent/cloud/polaris/config/spring/annotation/SpringValueProcessorTest.java index 69d6eb138..5074fc771 100644 --- a/spring-cloud-starter-tencent-polaris-config/src/test/java/com/tencent/cloud/polaris/config/spring/annotation/SpringValueProcessorTest.java +++ b/spring-cloud-starter-tencent-polaris-config/src/test/java/com/tencent/cloud/polaris/config/spring/annotation/SpringValueProcessorTest.java @@ -211,7 +211,7 @@ public class SpringValueProcessorTest { } @Component - private static class ValueTest { + private static final class ValueTest { private static String name; @Value("${timeout:1000}") private int timeout; diff --git a/spring-cloud-starter-tencent-polaris-contract/src/main/java/com/tencent/cloud/polaris/contract/PolarisContractReporter.java b/spring-cloud-starter-tencent-polaris-contract/src/main/java/com/tencent/cloud/polaris/contract/PolarisContractReporter.java index 417cf5517..65795976e 100644 --- a/spring-cloud-starter-tencent-polaris-contract/src/main/java/com/tencent/cloud/polaris/contract/PolarisContractReporter.java +++ b/spring-cloud-starter-tencent-polaris-contract/src/main/java/com/tencent/cloud/polaris/contract/PolarisContractReporter.java @@ -24,7 +24,6 @@ import java.util.List; import java.util.Map; import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.databind.ObjectMapper; import com.tencent.cloud.common.metadata.MetadataContext; import com.tencent.cloud.common.util.GzipUtil; import com.tencent.cloud.polaris.PolarisDiscoveryProperties; @@ -46,6 +45,7 @@ import org.springdoc.api.AbstractOpenApiResourceUtil; import org.springdoc.core.providers.ObjectMapperProvider; import org.springdoc.webflux.api.OpenApiWebFluxUtil; import org.springdoc.webmvc.api.OpenApiWebMvcUtil; +import tools.jackson.databind.json.JsonMapper; import org.springframework.boot.context.event.ApplicationReadyEvent; import org.springframework.context.ApplicationListener; @@ -115,8 +115,9 @@ public class PolarisContractReporter implements ApplicationListener incl.withValueInclusion(JsonInclude.Include.NON_NULL)) + .build(); jsonValue = mapper.writeValueAsString(openAPI); } String serviceApiMeta = GzipUtil.compressBase64Encode(jsonValue, "utf-8"); @@ -159,8 +160,9 @@ public class PolarisContractReporter implements ApplicationListener incl.withValueInclusion(JsonInclude.Include.NON_NULL)) + .build(); jsonValue = mapper.writeValueAsString(o.getValue()); } interfaceDescriptor.setContent(GzipUtil.compressBase64Encode(jsonValue, "utf-8")); diff --git a/spring-cloud-starter-tencent-polaris-contract/src/main/java/com/tencent/cloud/polaris/contract/tsf/TsfApiMetadataGrapher.java b/spring-cloud-starter-tencent-polaris-contract/src/main/java/com/tencent/cloud/polaris/contract/tsf/TsfApiMetadataGrapher.java index 9e9f6b5af..381ee5094 100644 --- a/spring-cloud-starter-tencent-polaris-contract/src/main/java/com/tencent/cloud/polaris/contract/tsf/TsfApiMetadataGrapher.java +++ b/spring-cloud-starter-tencent-polaris-contract/src/main/java/com/tencent/cloud/polaris/contract/tsf/TsfApiMetadataGrapher.java @@ -20,7 +20,6 @@ package com.tencent.cloud.polaris.contract.tsf; import java.util.concurrent.atomic.AtomicBoolean; import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.databind.ObjectMapper; import com.tencent.cloud.common.util.GzipUtil; import io.swagger.v3.oas.models.OpenAPI; import org.slf4j.Logger; @@ -30,6 +29,7 @@ import org.springdoc.api.AbstractOpenApiResourceUtil; import org.springdoc.core.providers.ObjectMapperProvider; import org.springdoc.webflux.api.OpenApiWebFluxUtil; import org.springdoc.webmvc.api.OpenApiWebMvcUtil; +import tools.jackson.databind.json.JsonMapper; import org.springframework.context.ApplicationContext; import org.springframework.context.SmartLifecycle; @@ -89,8 +89,9 @@ public class TsfApiMetadataGrapher implements SmartLifecycle { jsonValue = springdocObjectMapperProvider.jsonMapper().writeValueAsString(openAPI); } else { - ObjectMapper mapper = new ObjectMapper(); - mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); + JsonMapper mapper = JsonMapper.builder() + .changeDefaultPropertyInclusion(incl -> incl.withValueInclusion(JsonInclude.Include.NON_NULL)) + .build(); jsonValue = mapper.writeValueAsString(openAPI); } if (openAPI != null && !StringUtils.isEmpty(jsonValue)) { diff --git a/spring-cloud-starter-tencent-polaris-discovery/pom.xml b/spring-cloud-starter-tencent-polaris-discovery/pom.xml index 67bdae3ea..3243705b8 100644 --- a/spring-cloud-starter-tencent-polaris-discovery/pom.xml +++ b/spring-cloud-starter-tencent-polaris-discovery/pom.xml @@ -53,7 +53,7 @@ org.springframework.boot - spring-boot-actuator + spring-boot-starter-actuator true 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 30bc43240..06f691ac4 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,7 +47,7 @@ public class PolarisReactiveDiscoveryClientConfiguration { } @Bean - @ConditionalOnClass(name = "org.springframework.boot.actuate.health.ReactiveHealthIndicator") + @ConditionalOnClass(name = "org.springframework.boot.health.contributor.ReactiveHealthIndicator") @ConditionalOnDiscoveryHealthIndicatorEnabled public ReactiveDiscoveryClientHealthIndicator polarisReactiveDiscoveryClientHealthIndicator( PolarisReactiveDiscoveryClient client, DiscoveryClientHealthIndicatorProperties properties) { 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 e49fcafb8..963e2d391 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 @@ -31,6 +31,7 @@ import org.slf4j.LoggerFactory; import org.springframework.cloud.client.serviceregistry.AbstractAutoServiceRegistration; import org.springframework.cloud.client.serviceregistry.AutoServiceRegistrationProperties; import org.springframework.cloud.client.serviceregistry.ServiceRegistry; +import org.springframework.context.ApplicationContext; import org.springframework.util.StringUtils; /** @@ -49,13 +50,14 @@ public class PolarisAutoServiceRegistration extends AbstractAutoServiceRegistrat private final AssemblyAPI assemblyAPI; public PolarisAutoServiceRegistration( + ApplicationContext context, ServiceRegistry serviceRegistry, AutoServiceRegistrationProperties autoServiceRegistrationProperties, PolarisRegistration registration, PolarisDiscoveryProperties polarisDiscoveryProperties, AssemblyAPI assemblyAPI ) { - super(serviceRegistry, autoServiceRegistrationProperties); + super(context, serviceRegistry, autoServiceRegistrationProperties); this.registration = registration; this.polarisDiscoveryProperties = polarisDiscoveryProperties; this.assemblyAPI = assemblyAPI; 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 1506bc018..5ea0922f4 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 @@ -31,9 +31,9 @@ import com.tencent.polaris.api.utils.CollectionUtils; import com.tencent.polaris.api.utils.StringUtils; import com.tencent.polaris.client.api.SDKContext; -import org.springframework.boot.web.reactive.context.ReactiveWebServerApplicationContext; -import org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext; -import org.springframework.cloud.client.DefaultServiceInstance; +import org.springframework.boot.web.server.reactive.context.ReactiveWebServerApplicationContext; +import org.springframework.boot.web.server.servlet.context.ServletWebServerApplicationContext; +import org.springframework.cloud.client.ServiceInstance; import org.springframework.cloud.client.serviceregistry.Registration; import org.springframework.lang.Nullable; /** @@ -180,7 +180,7 @@ public class PolarisRegistration implements Registration { @Override public URI getUri() { - return DefaultServiceInstance.getUri(this); + return ServiceInstance.createUri(this); } @Override 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 fbc33cf48..d3117de79 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 @@ -34,11 +34,12 @@ import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.boot.autoconfigure.AutoConfigureBefore; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.context.properties.EnableConfigurationProperties; -import org.springframework.boot.web.reactive.context.ReactiveWebServerApplicationContext; -import org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext; +import org.springframework.boot.web.server.reactive.context.ReactiveWebServerApplicationContext; +import org.springframework.boot.web.server.servlet.context.ServletWebServerApplicationContext; import org.springframework.cloud.client.serviceregistry.AutoServiceRegistrationAutoConfiguration; import org.springframework.cloud.client.serviceregistry.AutoServiceRegistrationProperties; import org.springframework.cloud.client.serviceregistry.ServiceRegistryAutoConfiguration; +import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -81,13 +82,14 @@ public class PolarisServiceRegistryAutoConfiguration { @Bean public PolarisAutoServiceRegistration polarisAutoServiceRegistration( + ApplicationContext context, PolarisServiceRegistry registry, AutoServiceRegistrationProperties autoServiceRegistrationProperties, PolarisRegistration registration, PolarisDiscoveryProperties polarisDiscoveryProperties, PolarisSDKContextManager polarisSDKContextManager ) { - return new PolarisAutoServiceRegistration(registry, autoServiceRegistrationProperties, registration, + return new PolarisAutoServiceRegistration(context, registry, autoServiceRegistrationProperties, registration, polarisDiscoveryProperties, polarisSDKContextManager.getAssemblyAPI()); } diff --git a/spring-cloud-starter-tencent-polaris-discovery/src/test/java/com/tencent/cloud/polaris/registry/PolarisAutoServiceRegistrationTest.java b/spring-cloud-starter-tencent-polaris-discovery/src/test/java/com/tencent/cloud/polaris/registry/PolarisAutoServiceRegistrationTest.java index a1aed35c6..df559099d 100644 --- a/spring-cloud-starter-tencent-polaris-discovery/src/test/java/com/tencent/cloud/polaris/registry/PolarisAutoServiceRegistrationTest.java +++ b/spring-cloud-starter-tencent-polaris-discovery/src/test/java/com/tencent/cloud/polaris/registry/PolarisAutoServiceRegistrationTest.java @@ -30,6 +30,7 @@ import org.springframework.cloud.client.serviceregistry.AutoServiceRegistrationP import org.springframework.cloud.client.serviceregistry.ServiceRegistry; import org.springframework.context.ApplicationContext; import org.springframework.core.env.Environment; +import org.springframework.mock.env.MockEnvironment; import static com.tencent.polaris.test.common.Consts.SERVICE_PROVIDER; import static org.assertj.core.api.Assertions.assertThat; @@ -73,12 +74,15 @@ public class PolarisAutoServiceRegistrationTest { doNothing().when(serviceRegistry).register(nullable(PolarisRegistration.class)); doNothing().when(serviceRegistry).deregister(nullable(PolarisRegistration.class)); + // Use MockEnvironment to simulate real Spring environment + MockEnvironment mockEnvironment = new MockEnvironment(); + mockEnvironment.setProperty("spring.application.name", "application"); + + doReturn(mockEnvironment).when(applicationContext).getEnvironment(); + polarisAutoServiceRegistration = - new PolarisAutoServiceRegistration(serviceRegistry, autoServiceRegistrationProperties, registration, + new PolarisAutoServiceRegistration(applicationContext, serviceRegistry, autoServiceRegistrationProperties, registration, polarisDiscoveryProperties, null); - - doReturn(environment).when(applicationContext).getEnvironment(); - polarisAutoServiceRegistration.setApplicationContext(applicationContext); } @Test 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 48f1ee6aa..6a6d696c5 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 @@ -36,9 +36,9 @@ import org.mockito.junit.jupiter.MockitoExtension; import org.mockito.junit.jupiter.MockitoSettings; import org.mockito.quality.Strictness; -import org.springframework.boot.web.reactive.context.ReactiveWebServerApplicationContext; import org.springframework.boot.web.server.WebServer; -import org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext; +import org.springframework.boot.web.server.reactive.context.ReactiveWebServerApplicationContext; +import org.springframework.boot.web.server.servlet.context.ServletWebServerApplicationContext; import static com.tencent.polaris.test.common.Consts.HOST; import static com.tencent.polaris.test.common.Consts.PORT; diff --git a/spring-cloud-starter-tencent-polaris-ratelimit/src/test/java/com/tencent/cloud/polaris/context/CalleeControllerTests.java b/spring-cloud-starter-tencent-polaris-ratelimit/src/test/java/com/tencent/cloud/polaris/context/CalleeControllerTests.java index 59a1eea47..7e0c1f217 100644 --- a/spring-cloud-starter-tencent-polaris-ratelimit/src/test/java/com/tencent/cloud/polaris/context/CalleeControllerTests.java +++ b/spring-cloud-starter-tencent-polaris-ratelimit/src/test/java/com/tencent/cloud/polaris/context/CalleeControllerTests.java @@ -38,11 +38,11 @@ import shade.polaris.com.google.protobuf.StringValue; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.boot.test.mock.mockito.MockBean; import org.springframework.boot.test.web.server.LocalServerPort; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Primary; +import org.springframework.test.context.bean.override.mockito.MockitoBean; import org.springframework.test.context.junit.jupiter.SpringExtension; import org.springframework.web.client.HttpClientErrorException.TooManyRequests; import org.springframework.web.client.RestClientException; @@ -77,7 +77,7 @@ public class CalleeControllerTests { @Autowired private RestTemplate restTemplate; - @MockBean + @MockitoBean private LimitAPI limitAPI; @BeforeAll diff --git a/spring-cloud-starter-tencent-polaris-ratelimit/src/test/java/com/tencent/cloud/polaris/ratelimit/filter/QuotaCheckReactiveFilterTest.java b/spring-cloud-starter-tencent-polaris-ratelimit/src/test/java/com/tencent/cloud/polaris/ratelimit/filter/QuotaCheckReactiveFilterTest.java index 4fbaa8adf..3ffbd3754 100644 --- a/spring-cloud-starter-tencent-polaris-ratelimit/src/test/java/com/tencent/cloud/polaris/ratelimit/filter/QuotaCheckReactiveFilterTest.java +++ b/spring-cloud-starter-tencent-polaris-ratelimit/src/test/java/com/tencent/cloud/polaris/ratelimit/filter/QuotaCheckReactiveFilterTest.java @@ -50,7 +50,6 @@ import shade.polaris.com.google.protobuf.util.JsonFormat; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.http.HttpStatus; import org.springframework.http.server.reactive.ServerHttpResponse; import org.springframework.mock.http.server.reactive.MockServerHttpRequest; import org.springframework.mock.web.server.MockServerWebExchange; @@ -182,8 +181,7 @@ public class QuotaCheckReactiveFilterTest { ServerWebExchange testApp3Exchange = MockServerWebExchange.from(request); quotaCheckReactiveFilter.filter(testApp3Exchange, webFilterChain); ServerHttpResponse response = testApp3Exchange.getResponse(); - assertThat(response.getRawStatusCode()).isEqualTo(419); - assertThat(response.getStatusCode()).isEqualTo(HttpStatus.INSUFFICIENT_SPACE_ON_RESOURCE); + assertThat(response.getStatusCode().value()).isEqualTo(419); assertThat(response.getHeaders() .get(HeaderConstant.INTERNAL_ACTIVE_RULE_NAME)).isEqualTo(Collections.singletonList("MOCK_RULE")); @@ -227,7 +225,7 @@ public class QuotaCheckReactiveFilterTest { MetadataContext.LOCAL_SERVICE = "TestApp3"; quotaCheckWithRateLimiterLimitedFallbackReactiveFilter.filter(exchange, webFilterChain); ServerHttpResponse response = exchange.getResponse(); - assertThat(response.getRawStatusCode()).isEqualTo(polarisRateLimiterLimitedFallback.rejectHttpCode()); + assertThat(response.getStatusCode().value()).isEqualTo(polarisRateLimiterLimitedFallback.rejectHttpCode()); assertThat(response.getHeaders().getContentType()).isEqualTo(polarisRateLimiterLimitedFallback.mediaType()); // Exception diff --git a/spring-cloud-starter-tencent-polaris-router/pom.xml b/spring-cloud-starter-tencent-polaris-router/pom.xml index 9ae6e167d..70968c80b 100644 --- a/spring-cloud-starter-tencent-polaris-router/pom.xml +++ b/spring-cloud-starter-tencent-polaris-router/pom.xml @@ -36,7 +36,7 @@ org.springframework.cloud - spring-cloud-gateway-server + spring-cloud-gateway-server-webflux true @@ -50,7 +50,7 @@ org.springframework.cloud - spring-cloud-gateway-server-mvc + spring-cloud-gateway-server-webmvc true diff --git a/spring-cloud-starter-tencent-polaris-router/src/test/java/com/tencent/cloud/polaris/router/instrument/feign/RouterLabelFeignInterceptorTest.java b/spring-cloud-starter-tencent-polaris-router/src/test/java/com/tencent/cloud/polaris/router/instrument/feign/RouterLabelFeignInterceptorTest.java index 574979bb4..190b9dd63 100644 --- a/spring-cloud-starter-tencent-polaris-router/src/test/java/com/tencent/cloud/polaris/router/instrument/feign/RouterLabelFeignInterceptorTest.java +++ b/spring-cloud-starter-tencent-polaris-router/src/test/java/com/tencent/cloud/polaris/router/instrument/feign/RouterLabelFeignInterceptorTest.java @@ -48,7 +48,8 @@ import static org.mockito.Mockito.mock; */ @ExtendWith(SpringExtension.class) @SpringBootTest(classes = RouterLabelFeignInterceptorTest.TestApplication.class, - properties = {"spring.cloud.polaris.namespace=test", "spring.application.name=test", "spring.cloud.gateway.enabled=false"}) + properties = {"spring.cloud.polaris.namespace=test", "spring.application.name=test", "spring.cloud.gateway.enabled=false", + "spring.autoconfigure.exclude=org.springframework.cloud.gateway.config.GatewayAutoConfiguration,org.springframework.cloud.gateway.config.GatewayClassPathWarningAutoConfiguration,org.springframework.cloud.gateway.config.GatewayMetricsAutoConfiguration"}) public class RouterLabelFeignInterceptorTest { @Test diff --git a/spring-cloud-starter-tencent-polaris-router/src/test/java/com/tencent/cloud/polaris/router/instrument/resttemplate/RouterLabelRestTemplateInterceptorTest.java b/spring-cloud-starter-tencent-polaris-router/src/test/java/com/tencent/cloud/polaris/router/instrument/resttemplate/RouterLabelRestTemplateInterceptorTest.java index 5f741d775..6d06a8fc2 100644 --- a/spring-cloud-starter-tencent-polaris-router/src/test/java/com/tencent/cloud/polaris/router/instrument/resttemplate/RouterLabelRestTemplateInterceptorTest.java +++ b/spring-cloud-starter-tencent-polaris-router/src/test/java/com/tencent/cloud/polaris/router/instrument/resttemplate/RouterLabelRestTemplateInterceptorTest.java @@ -55,7 +55,8 @@ import static org.mockito.Mockito.when; */ @ExtendWith(SpringExtension.class) @SpringBootTest(classes = RouterLabelRestTemplateInterceptorTest.TestApplication.class, - properties = {"spring.cloud.polaris.namespace=test", "spring.application.name=test", "spring.cloud.gateway.enabled=false"}) + properties = {"spring.cloud.polaris.namespace=test", "spring.application.name=test", "spring.cloud.gateway.enabled=false", + "spring.autoconfigure.exclude=org.springframework.cloud.gateway.config.GatewayAutoConfiguration,org.springframework.cloud.gateway.config.GatewayClassPathWarningAutoConfiguration,org.springframework.cloud.gateway.config.GatewayMetricsAutoConfiguration"}) public class RouterLabelRestTemplateInterceptorTest { @Mock diff --git a/spring-cloud-starter-tencent-polaris-router/src/test/java/com/tencent/cloud/polaris/router/instrument/scgmvc/RouterLabelMvcFilterTest.java b/spring-cloud-starter-tencent-polaris-router/src/test/java/com/tencent/cloud/polaris/router/instrument/scgmvc/RouterLabelMvcFilterTest.java index e519830f2..62906f163 100644 --- a/spring-cloud-starter-tencent-polaris-router/src/test/java/com/tencent/cloud/polaris/router/instrument/scgmvc/RouterLabelMvcFilterTest.java +++ b/spring-cloud-starter-tencent-polaris-router/src/test/java/com/tencent/cloud/polaris/router/instrument/scgmvc/RouterLabelMvcFilterTest.java @@ -47,7 +47,8 @@ import static org.springframework.cloud.gateway.server.mvc.filter.FormFilter.FOR */ @ExtendWith(SpringExtension.class) @SpringBootTest(classes = RouterLabelMvcFilterTest.TestApplication.class, - properties = {"spring.cloud.polaris.namespace=test", "spring.application.name=test", "spring.main.web-application-type=servlet", "spring.cloud.gateway.enabled=false"}) + properties = {"spring.cloud.polaris.namespace=test", "spring.application.name=test", "spring.main.web-application-type=servlet", "spring.cloud.gateway.enabled=false", + "spring.autoconfigure.exclude=org.springframework.cloud.gateway.config.GatewayAutoConfiguration,org.springframework.cloud.gateway.config.GatewayClassPathWarningAutoConfiguration,org.springframework.cloud.gateway.config.GatewayMetricsAutoConfiguration"}) public class RouterLabelMvcFilterTest { @Test diff --git a/spring-cloud-tencent-commons/pom.xml b/spring-cloud-tencent-commons/pom.xml index b447abb3b..cc00de055 100644 --- a/spring-cloud-tencent-commons/pom.xml +++ b/spring-cloud-tencent-commons/pom.xml @@ -65,7 +65,7 @@ org.springframework.cloud - spring-cloud-starter-gateway + spring-cloud-starter-gateway-server-webflux true @@ -87,6 +87,11 @@ true + + org.springframework.boot + spring-boot-web-server + + org.springframework.boot spring-boot-actuator-autoconfigure diff --git a/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/pojo/PolarisServiceInstance.java b/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/pojo/PolarisServiceInstance.java index 1e8dbcebc..1bff6583d 100644 --- a/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/pojo/PolarisServiceInstance.java +++ b/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/pojo/PolarisServiceInstance.java @@ -26,7 +26,6 @@ import com.tencent.polaris.api.pojo.Instance; import com.tencent.polaris.api.utils.CollectionUtils; import com.tencent.polaris.api.utils.StringUtils; -import org.springframework.cloud.client.DefaultServiceInstance; import org.springframework.cloud.client.ServiceInstance; /** @@ -94,7 +93,7 @@ public class PolarisServiceInstance implements ServiceInstance { @Override public URI getUri() { - return DefaultServiceInstance.getUri(this); + return ServiceInstance.createUri(this); } @Override 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 905490577..6230c4cd8 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 @@ -22,14 +22,14 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.core.type.TypeReference; -import com.fasterxml.jackson.databind.DeserializationFeature; -import com.fasterxml.jackson.databind.JavaType; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.ObjectWriter; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import tools.jackson.core.JacksonException; +import tools.jackson.core.type.TypeReference; +import tools.jackson.databind.DeserializationFeature; +import tools.jackson.databind.JavaType; +import tools.jackson.databind.ObjectWriter; +import tools.jackson.databind.json.JsonMapper; import org.springframework.util.StringUtils; @@ -43,12 +43,12 @@ public final class JacksonUtils { /** * Object Mapper. */ - public static final ObjectMapper OM = new ObjectMapper(); + public static final JsonMapper OM = new JsonMapper(); private static final Logger LOG = LoggerFactory.getLogger(JacksonUtils.class); static { - OM.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); + OM.rebuild().configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); } private JacksonUtils() { @@ -81,7 +81,7 @@ public final class JacksonUtils { return OM.writeValueAsString(object); } } - catch (JsonProcessingException e) { + catch (JacksonException e) { LOG.error("Object to Json failed. {}", object, e); throw new RuntimeException("Object to Json failed.", e); } @@ -91,7 +91,7 @@ public final class JacksonUtils { try { return OM.readValue(jsonStr, type); } - catch (JsonProcessingException e) { + catch (JacksonException e) { LOG.error("Json to object failed. {}", type, e); throw new RuntimeException("Json to object failed.", e); } @@ -101,7 +101,7 @@ public final class JacksonUtils { try { return OM.readValue(jsonStr, typeReference); } - catch (JsonProcessingException e) { + catch (JacksonException e) { LOG.error("Json to object failed. {}", typeReference, e); throw new RuntimeException("Json to object failed.", e); } @@ -138,7 +138,7 @@ public final class JacksonUtils { } return new HashMap<>(); } - catch (JsonProcessingException e) { + catch (JacksonException e) { LOG.error( "Json to map failed. check if the format of the json string[{}] is correct.", jsonStr, e); throw new RuntimeException("Json to map failed.", e); diff --git a/spring-cloud-tencent-commons/src/main/java/org/springframework/tsf/core/entity/Tag.java b/spring-cloud-tencent-commons/src/main/java/org/springframework/tsf/core/entity/Tag.java index 49faf9282..c0abdec59 100644 --- a/spring-cloud-tencent-commons/src/main/java/org/springframework/tsf/core/entity/Tag.java +++ b/spring-cloud-tencent-commons/src/main/java/org/springframework/tsf/core/entity/Tag.java @@ -40,7 +40,7 @@ public class Tag implements Serializable { public Tag(String key, String value, ControlFlag... flags) { this.key = key; this.value = value; - this.flags = new HashSet<>(Arrays.asList(flags)); + this.flags = flags != null ? new HashSet<>(Arrays.asList(flags)) : new HashSet<>(); } public Tag() { diff --git a/spring-cloud-tencent-commons/src/test/java/com/tencent/cloud/common/async/PolarisAsyncPropertiesTest.java b/spring-cloud-tencent-commons/src/test/java/com/tencent/cloud/common/async/PolarisAsyncPropertiesTest.java index c01af56c1..2bc43e39d 100644 --- a/spring-cloud-tencent-commons/src/test/java/com/tencent/cloud/common/async/PolarisAsyncPropertiesTest.java +++ b/spring-cloud-tencent-commons/src/test/java/com/tencent/cloud/common/async/PolarisAsyncPropertiesTest.java @@ -35,7 +35,8 @@ import static org.assertj.core.api.Assertions.assertThat; @ExtendWith(SpringExtension.class) @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = PolarisAsyncPropertiesTest.TestApplication.class, - properties = {"spring.config.location = classpath:application-test.yml"}) + properties = {"spring.config.location = classpath:application-test.yml", + "spring.autoconfigure.exclude=org.springframework.cloud.gateway.config.GatewayAutoConfiguration,org.springframework.cloud.gateway.config.GatewayClassPathWarningAutoConfiguration,org.springframework.cloud.gateway.config.GatewayMetricsAutoConfiguration"}) public class PolarisAsyncPropertiesTest { @Autowired diff --git a/spring-cloud-tencent-commons/src/test/java/com/tencent/cloud/common/metadata/MetadataContextHolderTest.java b/spring-cloud-tencent-commons/src/test/java/com/tencent/cloud/common/metadata/MetadataContextHolderTest.java index 2380aa03c..e638bcf25 100644 --- a/spring-cloud-tencent-commons/src/test/java/com/tencent/cloud/common/metadata/MetadataContextHolderTest.java +++ b/spring-cloud-tencent-commons/src/test/java/com/tencent/cloud/common/metadata/MetadataContextHolderTest.java @@ -37,7 +37,8 @@ import org.springframework.test.context.junit.jupiter.SpringExtension; @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = MetadataContextHolderTest.TestApplication.class, properties = {"spring.config.location = classpath:application-test.yml", - "spring.main.web-application-type = reactive"}) + "spring.main.web-application-type = reactive", + "spring.autoconfigure.exclude=org.springframework.cloud.gateway.config.GatewayAutoConfiguration,org.springframework.cloud.gateway.config.GatewayClassPathWarningAutoConfiguration,org.springframework.cloud.gateway.config.GatewayMetricsAutoConfiguration"}) public class MetadataContextHolderTest { @Test diff --git a/spring-cloud-tencent-commons/src/test/java/com/tencent/cloud/common/metadata/MetadataContextTest.java b/spring-cloud-tencent-commons/src/test/java/com/tencent/cloud/common/metadata/MetadataContextTest.java index 4e8e0b977..2826af56b 100644 --- a/spring-cloud-tencent-commons/src/test/java/com/tencent/cloud/common/metadata/MetadataContextTest.java +++ b/spring-cloud-tencent-commons/src/test/java/com/tencent/cloud/common/metadata/MetadataContextTest.java @@ -39,7 +39,8 @@ import static org.assertj.core.api.Assertions.assertThat; @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = MetadataContextTest.TestApplication.class, properties = {"spring.config.location = classpath:application-test.yml", - "spring.main.web-application-type = reactive"}) + "spring.main.web-application-type = reactive", + "spring.autoconfigure.exclude=org.springframework.cloud.gateway.config.GatewayAutoConfiguration,org.springframework.cloud.gateway.config.GatewayClassPathWarningAutoConfiguration,org.springframework.cloud.gateway.config.GatewayMetricsAutoConfiguration"}) public class MetadataContextTest { private MetadataContext metadataContext; diff --git a/spring-cloud-tencent-commons/src/test/java/com/tencent/cloud/common/metadata/config/MetadataLocalPropertiesTest.java b/spring-cloud-tencent-commons/src/test/java/com/tencent/cloud/common/metadata/config/MetadataLocalPropertiesTest.java index c3c935a38..f98431a6c 100644 --- a/spring-cloud-tencent-commons/src/test/java/com/tencent/cloud/common/metadata/config/MetadataLocalPropertiesTest.java +++ b/spring-cloud-tencent-commons/src/test/java/com/tencent/cloud/common/metadata/config/MetadataLocalPropertiesTest.java @@ -35,7 +35,10 @@ import static org.assertj.core.api.Assertions.assertThat; @ExtendWith(SpringExtension.class) @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = MetadataLocalPropertiesTest.TestApplication.class, - properties = {"spring.config.location = classpath:application-test.yml"}) + properties = {"spring.config.location = classpath:application-test.yml", + "spring.main.web-application-type = servlet", + "spring.cloud.gateway.enabled = false", + "spring.autoconfigure.exclude=org.springframework.cloud.gateway.config.GatewayAutoConfiguration,org.springframework.cloud.gateway.config.GatewayClassPathWarningAutoConfiguration,org.springframework.cloud.gateway.config.GatewayMetricsAutoConfiguration"}) public class MetadataLocalPropertiesTest { @Autowired diff --git a/spring-cloud-tencent-commons/src/test/java/com/tencent/cloud/common/util/BeanFactoryUtilsTest.java b/spring-cloud-tencent-commons/src/test/java/com/tencent/cloud/common/util/BeanFactoryUtilsTest.java index 09a930ec0..4b4088efb 100644 --- a/spring-cloud-tencent-commons/src/test/java/com/tencent/cloud/common/util/BeanFactoryUtilsTest.java +++ b/spring-cloud-tencent-commons/src/test/java/com/tencent/cloud/common/util/BeanFactoryUtilsTest.java @@ -26,6 +26,7 @@ import org.springframework.beans.factory.ObjectProvider; import org.springframework.beans.factory.config.ConfigurableBeanFactory; import org.springframework.beans.factory.support.DefaultListableBeanFactory; import org.springframework.beans.factory.support.RootBeanDefinition; +import org.springframework.core.ParameterizedTypeReference; import org.springframework.core.ResolvableType; import static org.assertj.core.api.Assertions.assertThat; @@ -115,6 +116,11 @@ public class BeanFactoryUtilsTest { return null; } + @Override + public ObjectProvider getBeanProvider(ParameterizedTypeReference requiredType) { + return null; + } + @Override public boolean containsBean(String s) { return false; diff --git a/spring-cloud-tencent-commons/src/test/java/com/tencent/cloud/common/util/JacksonUtilsTest.java b/spring-cloud-tencent-commons/src/test/java/com/tencent/cloud/common/util/JacksonUtilsTest.java index e31efb849..71be0b737 100644 --- a/spring-cloud-tencent-commons/src/test/java/com/tencent/cloud/common/util/JacksonUtilsTest.java +++ b/spring-cloud-tencent-commons/src/test/java/com/tencent/cloud/common/util/JacksonUtilsTest.java @@ -21,10 +21,10 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import com.fasterxml.jackson.core.type.TypeReference; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.junit.jupiter.MockitoExtension; +import tools.jackson.core.type.TypeReference; import org.springframework.tsf.core.entity.Tag; import org.springframework.util.StringUtils; diff --git a/spring-cloud-tencent-commons/src/test/java/com/tencent/cloud/common/util/OkHttpUtilTest.java b/spring-cloud-tencent-commons/src/test/java/com/tencent/cloud/common/util/OkHttpUtilTest.java index 031c7176e..53762f906 100644 --- a/spring-cloud-tencent-commons/src/test/java/com/tencent/cloud/common/util/OkHttpUtilTest.java +++ b/spring-cloud-tencent-commons/src/test/java/com/tencent/cloud/common/util/OkHttpUtilTest.java @@ -42,7 +42,8 @@ import static org.assertj.core.api.Assertions.assertThat; properties = { "spring.application.name=test", "spring.cloud.polaris.discovery.register=false", - "spring.cloud.gateway.enabled=false" + "spring.cloud.gateway.enabled=false", + "spring.autoconfigure.exclude=org.springframework.cloud.gateway.config.GatewayAutoConfiguration,org.springframework.cloud.gateway.config.GatewayClassPathWarningAutoConfiguration,org.springframework.cloud.gateway.config.GatewayMetricsAutoConfiguration" }) public class OkHttpUtilTest { diff --git a/spring-cloud-tencent-dependencies/pom.xml b/spring-cloud-tencent-dependencies/pom.xml index d81a674ea..d5f98f521 100644 --- a/spring-cloud-tencent-dependencies/pom.xml +++ b/spring-cloud-tencent-dependencies/pom.xml @@ -5,7 +5,7 @@ org.springframework.cloud spring-cloud-dependencies-parent - 4.2.4 + 5.0.1 4.0.0 @@ -71,7 +71,7 @@ - 2.1.2.0-2024.0.3-SNAPSHOT + 2.1.2.0-2025.1.1-SNAPSHOT 2.1.2.0-SNAPSHOT diff --git a/spring-cloud-tencent-examples/polaris-router-grayrelease-lane-example/router-grayrelease-lane-gateway/pom.xml b/spring-cloud-tencent-examples/polaris-router-grayrelease-lane-example/router-grayrelease-lane-gateway/pom.xml index 81e3214b4..cf8267c7b 100644 --- a/spring-cloud-tencent-examples/polaris-router-grayrelease-lane-example/router-grayrelease-lane-gateway/pom.xml +++ b/spring-cloud-tencent-examples/polaris-router-grayrelease-lane-example/router-grayrelease-lane-gateway/pom.xml @@ -25,7 +25,7 @@ org.springframework.cloud - spring-cloud-starter-gateway + spring-cloud-starter-gateway-server-webflux diff --git a/spring-cloud-tencent-examples/quickstart-example/quickstart-gateway-mvc-service/pom.xml b/spring-cloud-tencent-examples/quickstart-example/quickstart-gateway-mvc-service/pom.xml index 33a37a878..a4e718f2a 100644 --- a/spring-cloud-tencent-examples/quickstart-example/quickstart-gateway-mvc-service/pom.xml +++ b/spring-cloud-tencent-examples/quickstart-example/quickstart-gateway-mvc-service/pom.xml @@ -21,7 +21,7 @@ org.springframework.cloud - spring-cloud-starter-gateway-mvc + spring-cloud-starter-gateway-server-webmvc diff --git a/spring-cloud-tencent-examples/quickstart-example/quickstart-gateway-service/pom.xml b/spring-cloud-tencent-examples/quickstart-example/quickstart-gateway-service/pom.xml index 81e4e1df9..b4055a949 100644 --- a/spring-cloud-tencent-examples/quickstart-example/quickstart-gateway-service/pom.xml +++ b/spring-cloud-tencent-examples/quickstart-example/quickstart-gateway-service/pom.xml @@ -21,7 +21,7 @@ org.springframework.cloud - spring-cloud-starter-gateway + spring-cloud-starter-gateway-server-webflux diff --git a/spring-cloud-tencent-examples/tsf-example/consumer-demo/src/main/java/com/tencent/cloud/tsf/demo/consumer/ConsumerApplication.java b/spring-cloud-tencent-examples/tsf-example/consumer-demo/src/main/java/com/tencent/cloud/tsf/demo/consumer/ConsumerApplication.java index d7cb567c9..7aa793f34 100644 --- a/spring-cloud-tencent-examples/tsf-example/consumer-demo/src/main/java/com/tencent/cloud/tsf/demo/consumer/ConsumerApplication.java +++ b/spring-cloud-tencent-examples/tsf-example/consumer-demo/src/main/java/com/tencent/cloud/tsf/demo/consumer/ConsumerApplication.java @@ -35,8 +35,8 @@ import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; +import org.springframework.boot.restclient.RestTemplateBuilder; import org.springframework.boot.ssl.SslBundles; -import org.springframework.boot.web.client.RestTemplateBuilder; import org.springframework.cloud.client.loadbalancer.LoadBalanced; import org.springframework.cloud.context.config.annotation.RefreshScope; import org.springframework.cloud.openfeign.EnableFeignClients; diff --git a/spring-cloud-tencent-examples/tsf-example/msgw-scg/pom.xml b/spring-cloud-tencent-examples/tsf-example/msgw-scg/pom.xml index 135d28ea2..16e7f9f95 100644 --- a/spring-cloud-tencent-examples/tsf-example/msgw-scg/pom.xml +++ b/spring-cloud-tencent-examples/tsf-example/msgw-scg/pom.xml @@ -21,7 +21,7 @@ org.springframework.cloud - spring-cloud-starter-gateway + spring-cloud-starter-gateway-server-webflux diff --git a/spring-cloud-tencent-examples/tsf-example/provider-demo/src/main/java/com/tencent/cloud/tsf/demo/provider/swagger/controller/SwaggerApiController.java b/spring-cloud-tencent-examples/tsf-example/provider-demo/src/main/java/com/tencent/cloud/tsf/demo/provider/swagger/controller/SwaggerApiController.java index 635f49401..771df81cb 100644 --- a/spring-cloud-tencent-examples/tsf-example/provider-demo/src/main/java/com/tencent/cloud/tsf/demo/provider/swagger/controller/SwaggerApiController.java +++ b/spring-cloud-tencent-examples/tsf-example/provider-demo/src/main/java/com/tencent/cloud/tsf/demo/provider/swagger/controller/SwaggerApiController.java @@ -44,7 +44,7 @@ import org.springframework.web.bind.annotation.RestController; @Tag(description = "swagger 测试", name = "swaggerValue1") public class SwaggerApiController { - @RequestMapping(value = "/swagger/findMessages", produces = MediaType.APPLICATION_JSON_UTF8_VALUE) + @RequestMapping(value = "/swagger/findMessages", produces = MediaType.APPLICATION_JSON_VALUE) @Operation(method = "POST", summary = "根据任务ID查询任务列表", description = "根据任务ID查询任务列表Note") @@ -85,7 +85,7 @@ public class SwaggerApiController { @Operation(summary = "获取消息详情", method = "GET", description = "获取消息内容Note") @ApiResponses({@ApiResponse(responseCode = "200", description = "abcdef", content = @Content(schema = @Schema(implementation = MessageModel.class)))}) - @RequestMapping(value = "/swagger/getMessageDetail", produces = MediaType.APPLICATION_JSON_UTF8_VALUE) + @RequestMapping(value = "/swagger/getMessageDetail", produces = MediaType.APPLICATION_JSON_VALUE) public MessageModel getMessageDetail(@RequestParam(name = "id") @Parameter(description = "消息ID", name = "id") String msgId) { MessageModel messageModel = new MessageModel(); @@ -109,7 +109,7 @@ public class SwaggerApiController { @Operation(summary = "获取投递箱详情", method = "GET", description = "") @ApiResponses({@ApiResponse(responseCode = "200", description = "获取投递箱成功", content = @Content(schema = @Schema(implementation = MessageBox.class)))}) - @RequestMapping(value = "/swagger/getMessageBox", produces = MediaType.APPLICATION_JSON_UTF8_VALUE) + @RequestMapping(value = "/swagger/getMessageBox", produces = MediaType.APPLICATION_JSON_VALUE) public MessageBox getMessageBox(@RequestParam @Parameter(required = true, description = "投递箱ID") String boxId, @RequestParam @Parameter(name = "sizeLimit", example = "10", description = "投递箱最大投递数") int maxSizeLimit) { return new MessageBox(); @@ -117,7 +117,7 @@ public class SwaggerApiController { @Operation(summary = "获取投递箱详情V2", method = "POST", description = "") @ApiResponses({@ApiResponse(responseCode = "200", description = "获取投递箱成功", content = @Content(schema = @Schema(implementation = MessageBox.class)))}) - @RequestMapping(value = "/swagger/v2/getMessageBox", produces = MediaType.APPLICATION_JSON_UTF8_VALUE) + @RequestMapping(value = "/swagger/v2/getMessageBox", produces = MediaType.APPLICATION_JSON_VALUE) public MessageBox getMessageBoxV2(@RequestBody @Parameter(required = true, name = "messageBox", example = "投递箱信息") MessageBox messageBox) { return new MessageBox(); @@ -125,7 +125,7 @@ public class SwaggerApiController { @Operation(summary = "获取投递箱详情V3", method = "POST", description = "") @ApiResponses({@ApiResponse(responseCode = "200", description = "获取投递箱成功", content = @Content(schema = @Schema(implementation = Map.class)))}) - @RequestMapping(value = "/swagger/v3/getMessageBox", produces = MediaType.APPLICATION_JSON_UTF8_VALUE) + @RequestMapping(value = "/swagger/v3/getMessageBox", produces = MediaType.APPLICATION_JSON_VALUE) public Map queryMessageBoxV3(@RequestBody @Parameter(required = true, name = "messageBox", example = "投递箱信息") MessageBox messageBox) { diff --git a/spring-cloud-tencent-plugin-starters/spring-cloud-starter-tencent-fault-tolerance/pom.xml b/spring-cloud-tencent-plugin-starters/spring-cloud-starter-tencent-fault-tolerance/pom.xml index 26742c5ac..3e24100f2 100644 --- a/spring-cloud-tencent-plugin-starters/spring-cloud-starter-tencent-fault-tolerance/pom.xml +++ b/spring-cloud-tencent-plugin-starters/spring-cloud-starter-tencent-fault-tolerance/pom.xml @@ -16,7 +16,7 @@ org.springframework.boot - spring-boot-starter-aop + spring-boot-starter-aspectj org.springframework.boot diff --git a/spring-cloud-tencent-plugin-starters/spring-cloud-starter-tencent-gateway-plugin/pom.xml b/spring-cloud-tencent-plugin-starters/spring-cloud-starter-tencent-gateway-plugin/pom.xml index 4690f32c7..dda733782 100644 --- a/spring-cloud-tencent-plugin-starters/spring-cloud-starter-tencent-gateway-plugin/pom.xml +++ b/spring-cloud-tencent-plugin-starters/spring-cloud-starter-tencent-gateway-plugin/pom.xml @@ -32,7 +32,7 @@ org.springframework.cloud - spring-cloud-gateway-server + spring-cloud-gateway-server-webflux true diff --git a/spring-cloud-tencent-plugin-starters/spring-cloud-starter-tencent-gateway-plugin/src/main/java/com/tencent/cloud/plugin/gateway/context/ContextGatewayFilter.java b/spring-cloud-tencent-plugin-starters/spring-cloud-starter-tencent-gateway-plugin/src/main/java/com/tencent/cloud/plugin/gateway/context/ContextGatewayFilter.java index 288b60502..2b73ef5f2 100644 --- a/spring-cloud-tencent-plugin-starters/spring-cloud-starter-tencent-gateway-plugin/src/main/java/com/tencent/cloud/plugin/gateway/context/ContextGatewayFilter.java +++ b/spring-cloud-tencent-plugin-starters/spring-cloud-starter-tencent-gateway-plugin/src/main/java/com/tencent/cloud/plugin/gateway/context/ContextGatewayFilter.java @@ -529,7 +529,7 @@ public class ContextGatewayFilter implements GatewayFilter, Ordered { private Map copyRequestHeader(ServerHttpRequest request) { Map headerMap = new LinkedHashMap<>(); HttpHeaders headers = request.getHeaders(); - for (Map.Entry> entry : headers.entrySet()) { + for (Map.Entry> entry : headers.headerSet()) { if (!entry.getValue().isEmpty()) { headerMap.put(entry.getKey(), entry.getValue().get(0)); } diff --git a/spring-cloud-tencent-plugin-starters/spring-cloud-starter-tencent-gateway-plugin/src/main/java/com/tencent/tsf/gateway/core/model/RequestTransformerPlugin.java b/spring-cloud-tencent-plugin-starters/spring-cloud-starter-tencent-gateway-plugin/src/main/java/com/tencent/tsf/gateway/core/model/RequestTransformerPlugin.java index 51a5f3ed2..73f34620f 100644 --- a/spring-cloud-tencent-plugin-starters/spring-cloud-starter-tencent-gateway-plugin/src/main/java/com/tencent/tsf/gateway/core/model/RequestTransformerPlugin.java +++ b/spring-cloud-tencent-plugin-starters/spring-cloud-starter-tencent-gateway-plugin/src/main/java/com/tencent/tsf/gateway/core/model/RequestTransformerPlugin.java @@ -18,11 +18,11 @@ package com.tencent.tsf.gateway.core.model; import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.core.type.TypeReference; import com.tencent.cloud.common.util.JacksonUtils; import com.tencent.polaris.api.utils.StringUtils; import com.tencent.tsf.gateway.core.exception.TsfGatewayError; import com.tencent.tsf.gateway.core.exception.TsfGatewayException; +import tools.jackson.core.type.TypeReference; public class RequestTransformerPlugin extends PluginInfo { diff --git a/spring-cloud-tencent-plugin-starters/spring-cloud-starter-tencent-gateway-plugin/src/main/java/com/tencent/tsf/gateway/core/util/PluginUtil.java b/spring-cloud-tencent-plugin-starters/spring-cloud-starter-tencent-gateway-plugin/src/main/java/com/tencent/tsf/gateway/core/util/PluginUtil.java index 5a4f5e0cf..6422c52b3 100644 --- a/spring-cloud-tencent-plugin-starters/spring-cloud-starter-tencent-gateway-plugin/src/main/java/com/tencent/tsf/gateway/core/util/PluginUtil.java +++ b/spring-cloud-tencent-plugin-starters/spring-cloud-starter-tencent-gateway-plugin/src/main/java/com/tencent/tsf/gateway/core/util/PluginUtil.java @@ -25,7 +25,6 @@ import java.util.Optional; import java.util.stream.Collectors; import java.util.stream.Stream; -import com.fasterxml.jackson.core.type.TypeReference; import com.tencent.cloud.common.util.JacksonUtils; import com.tencent.cloud.plugin.gateway.context.Position; import com.tencent.polaris.api.utils.CollectionUtils; @@ -50,6 +49,7 @@ import org.apache.commons.collections.MapUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import shade.polaris.com.google.common.base.Joiner; +import tools.jackson.core.type.TypeReference; import org.springframework.tsf.core.TsfContext; import org.springframework.tsf.core.entity.Tag; diff --git a/spring-cloud-tencent-plugin-starters/spring-cloud-starter-tencent-gateway-plugin/src/test/java/com/tencent/tsf/gateway/core/model/RequestTransformerPluginTest.java b/spring-cloud-tencent-plugin-starters/spring-cloud-starter-tencent-gateway-plugin/src/test/java/com/tencent/tsf/gateway/core/model/RequestTransformerPluginTest.java index aed60a97d..7f4928056 100644 --- a/spring-cloud-tencent-plugin-starters/spring-cloud-starter-tencent-gateway-plugin/src/test/java/com/tencent/tsf/gateway/core/model/RequestTransformerPluginTest.java +++ b/spring-cloud-tencent-plugin-starters/spring-cloud-starter-tencent-gateway-plugin/src/test/java/com/tencent/tsf/gateway/core/model/RequestTransformerPluginTest.java @@ -20,11 +20,11 @@ package com.tencent.tsf.gateway.core.model; import java.util.ArrayList; import java.util.List; -import com.fasterxml.jackson.core.type.TypeReference; import com.tencent.cloud.common.util.JacksonUtils; import com.tencent.cloud.plugin.gateway.context.Position; import com.tencent.tsf.gateway.core.exception.TsfGatewayException; import org.junit.jupiter.api.Test; +import tools.jackson.core.type.TypeReference; import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatNoException; diff --git a/spring-cloud-tencent-plugin-starters/spring-cloud-starter-tencent-mq-plugin/pom.xml b/spring-cloud-tencent-plugin-starters/spring-cloud-starter-tencent-mq-plugin/pom.xml index bbac23a7c..9bbe614e9 100644 --- a/spring-cloud-tencent-plugin-starters/spring-cloud-starter-tencent-mq-plugin/pom.xml +++ b/spring-cloud-tencent-plugin-starters/spring-cloud-starter-tencent-mq-plugin/pom.xml @@ -22,7 +22,7 @@ org.springframework.boot - spring-boot-starter-aop + spring-boot-starter-aspectj org.springframework.boot diff --git a/spring-cloud-tencent-plugin-starters/spring-cloud-starter-tencent-tsf-tls-plugin/src/main/java/com/tencent/cloud/plugin/tsf/tls/TlsEnvironmentPostProcessor.java b/spring-cloud-tencent-plugin-starters/spring-cloud-starter-tencent-tsf-tls-plugin/src/main/java/com/tencent/cloud/plugin/tsf/tls/TlsEnvironmentPostProcessor.java index 75121652e..f54753c8a 100644 --- a/spring-cloud-tencent-plugin-starters/spring-cloud-starter-tencent-tsf-tls-plugin/src/main/java/com/tencent/cloud/plugin/tsf/tls/TlsEnvironmentPostProcessor.java +++ b/spring-cloud-tencent-plugin-starters/spring-cloud-starter-tencent-tsf-tls-plugin/src/main/java/com/tencent/cloud/plugin/tsf/tls/TlsEnvironmentPostProcessor.java @@ -25,8 +25,8 @@ import com.tencent.cloud.polaris.context.config.extend.tsf.TsfTlsProperties; import com.tencent.polaris.api.utils.ClassUtils; import com.tencent.polaris.api.utils.StringUtils; +import org.springframework.boot.EnvironmentPostProcessor; import org.springframework.boot.SpringApplication; -import org.springframework.boot.env.EnvironmentPostProcessor; import org.springframework.core.Ordered; import org.springframework.core.env.ConfigurableEnvironment; import org.springframework.core.env.MapPropertySource; diff --git a/spring-cloud-tencent-plugin-starters/spring-cloud-starter-tencent-tsf-tls-plugin/src/main/resources/META-INF/spring.factories b/spring-cloud-tencent-plugin-starters/spring-cloud-starter-tencent-tsf-tls-plugin/src/main/resources/META-INF/spring.factories index 9fe401eda..af9928f48 100644 --- a/spring-cloud-tencent-plugin-starters/spring-cloud-starter-tencent-tsf-tls-plugin/src/main/resources/META-INF/spring.factories +++ b/spring-cloud-tencent-plugin-starters/spring-cloud-starter-tencent-tsf-tls-plugin/src/main/resources/META-INF/spring.factories @@ -1,2 +1,2 @@ -org.springframework.boot.env.EnvironmentPostProcessor=\ +org.springframework.boot.EnvironmentPostProcessor=\ com.tencent.cloud.plugin.tsf.tls.TlsEnvironmentPostProcessor diff --git a/spring-cloud-tencent-plugin-starters/spring-cloud-tencent-lossless-plugin/pom.xml b/spring-cloud-tencent-plugin-starters/spring-cloud-tencent-lossless-plugin/pom.xml index 84c9f10b8..89f517eea 100644 --- a/spring-cloud-tencent-plugin-starters/spring-cloud-tencent-lossless-plugin/pom.xml +++ b/spring-cloud-tencent-plugin-starters/spring-cloud-tencent-lossless-plugin/pom.xml @@ -22,7 +22,7 @@ org.springframework.boot - spring-boot-starter-aop + spring-boot-starter-aspectj org.springframework.boot diff --git a/spring-cloud-tencent-plugin-starters/spring-cloud-tencent-unit-plugin/pom.xml b/spring-cloud-tencent-plugin-starters/spring-cloud-tencent-unit-plugin/pom.xml index cde3a90bd..fd382946f 100644 --- a/spring-cloud-tencent-plugin-starters/spring-cloud-tencent-unit-plugin/pom.xml +++ b/spring-cloud-tencent-plugin-starters/spring-cloud-tencent-unit-plugin/pom.xml @@ -28,13 +28,13 @@ - com.fasterxml.jackson.core + tools.jackson.core jackson-databind true - com.fasterxml.jackson.dataformat + tools.jackson.dataformat jackson-dataformat-yaml true diff --git a/spring-cloud-tencent-plugin-starters/spring-cloud-tencent-unit-plugin/src/main/java/com/tencent/tsf/unit/core/TencentUnitContext.java b/spring-cloud-tencent-plugin-starters/spring-cloud-tencent-unit-plugin/src/main/java/com/tencent/tsf/unit/core/TencentUnitContext.java index 034ac32ed..780b9f983 100644 --- a/spring-cloud-tencent-plugin-starters/spring-cloud-tencent-unit-plugin/src/main/java/com/tencent/tsf/unit/core/TencentUnitContext.java +++ b/spring-cloud-tencent-plugin-starters/spring-cloud-tencent-unit-plugin/src/main/java/com/tencent/tsf/unit/core/TencentUnitContext.java @@ -26,7 +26,6 @@ import java.util.Locale; import java.util.Map; import java.util.Set; -import com.fasterxml.jackson.core.type.TypeReference; import com.tencent.cloud.common.metadata.MetadataContextHolder; import com.tencent.cloud.common.util.JacksonUtils; import com.tencent.cloud.common.util.MetadataContextUtils; @@ -36,6 +35,7 @@ import com.tencent.polaris.metadata.core.MetadataType; import com.tencent.tsf.unit.core.model.UnitRouteInfo.GrayMatchRouteUnit; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import tools.jackson.core.type.TypeReference; public final class TencentUnitContext { diff --git a/spring-cloud-tencent-plugin-starters/spring-cloud-tencent-unit-plugin/src/main/java/com/tencent/tsf/unit/core/mapping/impl/CustomerMappingService.java b/spring-cloud-tencent-plugin-starters/spring-cloud-tencent-unit-plugin/src/main/java/com/tencent/tsf/unit/core/mapping/impl/CustomerMappingService.java index 6846a396a..11319a722 100644 --- a/spring-cloud-tencent-plugin-starters/spring-cloud-tencent-unit-plugin/src/main/java/com/tencent/tsf/unit/core/mapping/impl/CustomerMappingService.java +++ b/spring-cloud-tencent-plugin-starters/spring-cloud-tencent-unit-plugin/src/main/java/com/tencent/tsf/unit/core/mapping/impl/CustomerMappingService.java @@ -20,7 +20,6 @@ package com.tencent.tsf.unit.core.mapping.impl; import java.io.IOException; import java.util.concurrent.TimeUnit; -import com.fasterxml.jackson.databind.ObjectMapper; import com.tencent.polaris.api.utils.StringUtils; import com.tencent.tsf.unit.core.TencentUnitManager; import com.tencent.tsf.unit.core.exception.ErrorCode; @@ -33,6 +32,7 @@ import shade.polaris.okhttp3.HttpUrl; import shade.polaris.okhttp3.OkHttpClient; import shade.polaris.okhttp3.Request; import shade.polaris.okhttp3.Response; +import tools.jackson.databind.json.JsonMapper; public class CustomerMappingService implements IMappingService { @@ -74,8 +74,8 @@ public class CustomerMappingService implements IMappingService { throw new TencentUnitException(ErrorCode.MAPPING_RESPONSE_EMPTY_BODY_ERROR, msg); } - ObjectMapper objectMapper = new ObjectMapper(); - MappingEntity entity = objectMapper.readValue(response.body().string(), MappingEntity.class); + JsonMapper JsonMapper = new JsonMapper(); + MappingEntity entity = JsonMapper.readValue(response.body().string(), MappingEntity.class); response.body().close(); return entity; } diff --git a/spring-cloud-tencent-plugin-starters/spring-cloud-tencent-unit-plugin/src/main/java/com/tencent/tsf/unit/core/remote/TencentUnitArchKVLoader.java b/spring-cloud-tencent-plugin-starters/spring-cloud-tencent-unit-plugin/src/main/java/com/tencent/tsf/unit/core/remote/TencentUnitArchKVLoader.java index 07e086e6e..48d1c75a9 100644 --- a/spring-cloud-tencent-plugin-starters/spring-cloud-tencent-unit-plugin/src/main/java/com/tencent/tsf/unit/core/remote/TencentUnitArchKVLoader.java +++ b/spring-cloud-tencent-plugin-starters/spring-cloud-tencent-unit-plugin/src/main/java/com/tencent/tsf/unit/core/remote/TencentUnitArchKVLoader.java @@ -21,16 +21,15 @@ import com.ecwid.consul.v1.ConsulClient; import com.ecwid.consul.v1.QueryParams; import com.ecwid.consul.v1.Response; import com.ecwid.consul.v1.kv.model.GetValue; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.DeserializationFeature; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.dataformat.yaml.YAMLFactory; import com.tencent.cloud.common.util.GzipUtil; import com.tencent.tsf.unit.core.Env; import com.tencent.tsf.unit.core.TencentUnitManager; import com.tencent.tsf.unit.core.model.UnitArch; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import tools.jackson.core.JacksonException; +import tools.jackson.databind.DeserializationFeature; +import tools.jackson.dataformat.yaml.YAMLMapper; public final class TencentUnitArchKVLoader { @@ -91,11 +90,11 @@ public final class TencentUnitArchKVLoader { } } - public static void loadUnitArch(String content) throws JsonProcessingException { + public static void loadUnitArch(String content) throws JacksonException { LOGGER.info("[unit] unit arch config old raw content:\n{}", rawContent); - ObjectMapper mapper = new ObjectMapper(new YAMLFactory()); - mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); + YAMLMapper mapper = new YAMLMapper(); + mapper.rebuild().configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); TencentUnitManager.setUnitArch(mapper.readValue(content, UnitArch.class)); rawContent = content; diff --git a/spring-cloud-tencent-plugin-starters/spring-cloud-tencent-unit-plugin/src/main/java/com/tencent/tsf/unit/core/remote/TencentUnitGrayKVLoader.java b/spring-cloud-tencent-plugin-starters/spring-cloud-tencent-unit-plugin/src/main/java/com/tencent/tsf/unit/core/remote/TencentUnitGrayKVLoader.java index 22837897f..a1fc9c51d 100644 --- a/spring-cloud-tencent-plugin-starters/spring-cloud-tencent-unit-plugin/src/main/java/com/tencent/tsf/unit/core/remote/TencentUnitGrayKVLoader.java +++ b/spring-cloud-tencent-plugin-starters/spring-cloud-tencent-unit-plugin/src/main/java/com/tencent/tsf/unit/core/remote/TencentUnitGrayKVLoader.java @@ -21,16 +21,15 @@ import com.ecwid.consul.v1.ConsulClient; import com.ecwid.consul.v1.QueryParams; import com.ecwid.consul.v1.Response; import com.ecwid.consul.v1.kv.model.GetValue; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.DeserializationFeature; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.dataformat.yaml.YAMLFactory; import com.tencent.cloud.common.util.GzipUtil; import com.tencent.tsf.unit.core.Env; import com.tencent.tsf.unit.core.TencentUnitManager; import com.tencent.tsf.unit.core.model.UnitGray; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import tools.jackson.core.JacksonException; +import tools.jackson.databind.DeserializationFeature; +import tools.jackson.dataformat.yaml.YAMLMapper; public final class TencentUnitGrayKVLoader { @@ -89,11 +88,11 @@ public final class TencentUnitGrayKVLoader { } } - public static void loadUnitGray(String content) throws JsonProcessingException { + public static void loadUnitGray(String content) throws JacksonException { LOGGER.info("[unit] unit gray old raw content:\n{}", rawContent); - ObjectMapper mapper = new ObjectMapper(new YAMLFactory()); - mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); + YAMLMapper mapper = new YAMLMapper(); + mapper.rebuild().configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); TencentUnitManager.setUnitGray(mapper.readValue(content, UnitGray.class)); rawContent = content; diff --git a/spring-cloud-tencent-plugin-starters/spring-cloud-tencent-unit-plugin/src/main/java/com/tencent/tsf/unit/core/remote/TencentUnitRouteRuleKVLoader.java b/spring-cloud-tencent-plugin-starters/spring-cloud-tencent-unit-plugin/src/main/java/com/tencent/tsf/unit/core/remote/TencentUnitRouteRuleKVLoader.java index 6e9718fb0..db3c17403 100644 --- a/spring-cloud-tencent-plugin-starters/spring-cloud-tencent-unit-plugin/src/main/java/com/tencent/tsf/unit/core/remote/TencentUnitRouteRuleKVLoader.java +++ b/spring-cloud-tencent-plugin-starters/spring-cloud-tencent-unit-plugin/src/main/java/com/tencent/tsf/unit/core/remote/TencentUnitRouteRuleKVLoader.java @@ -21,16 +21,15 @@ import com.ecwid.consul.v1.ConsulClient; import com.ecwid.consul.v1.QueryParams; import com.ecwid.consul.v1.Response; import com.ecwid.consul.v1.kv.model.GetValue; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.DeserializationFeature; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.dataformat.yaml.YAMLFactory; import com.tencent.cloud.common.util.GzipUtil; import com.tencent.tsf.unit.core.Env; import com.tencent.tsf.unit.core.TencentUnitManager; import com.tencent.tsf.unit.core.model.UnitRouteInfo; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import tools.jackson.core.JacksonException; +import tools.jackson.databind.DeserializationFeature; +import tools.jackson.dataformat.yaml.YAMLMapper; public final class TencentUnitRouteRuleKVLoader { @@ -89,11 +88,11 @@ public final class TencentUnitRouteRuleKVLoader { } } - public static void loadUnitRouteRule(String content) throws JsonProcessingException { + public static void loadUnitRouteRule(String content) throws JacksonException { LOGGER.info("[unit] unit route rule old raw content:\n{}", rawContent); - ObjectMapper mapper = new ObjectMapper(new YAMLFactory()); - mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); + YAMLMapper mapper = new YAMLMapper(); + mapper.rebuild().configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); TencentUnitManager.setUnitRouteRule(mapper.readValue(content, UnitRouteInfo.class)); rawContent = content; diff --git a/spring-cloud-tencent-polaris-context/src/main/java/com/tencent/cloud/polaris/context/config/PolarisContextEnvironmentPostProcessor.java b/spring-cloud-tencent-polaris-context/src/main/java/com/tencent/cloud/polaris/context/config/PolarisContextEnvironmentPostProcessor.java index 74eef69b5..a008daefb 100644 --- a/spring-cloud-tencent-polaris-context/src/main/java/com/tencent/cloud/polaris/context/config/PolarisContextEnvironmentPostProcessor.java +++ b/spring-cloud-tencent-polaris-context/src/main/java/com/tencent/cloud/polaris/context/config/PolarisContextEnvironmentPostProcessor.java @@ -23,9 +23,9 @@ import java.util.Map; import com.tencent.polaris.api.utils.StringUtils; import org.apache.commons.logging.Log; +import org.springframework.boot.EnvironmentPostProcessor; import org.springframework.boot.SpringApplication; import org.springframework.boot.context.config.ConfigDataEnvironmentPostProcessor; -import org.springframework.boot.env.EnvironmentPostProcessor; import org.springframework.boot.logging.DeferredLogFactory; import org.springframework.core.Ordered; import org.springframework.core.env.ConfigurableEnvironment; diff --git a/spring-cloud-tencent-polaris-context/src/main/java/com/tencent/cloud/polaris/context/config/extend/tsf/TsfCoreEnvironmentPostProcessor.java b/spring-cloud-tencent-polaris-context/src/main/java/com/tencent/cloud/polaris/context/config/extend/tsf/TsfCoreEnvironmentPostProcessor.java index 07c841dc7..2e1e9584d 100644 --- a/spring-cloud-tencent-polaris-context/src/main/java/com/tencent/cloud/polaris/context/config/extend/tsf/TsfCoreEnvironmentPostProcessor.java +++ b/spring-cloud-tencent-polaris-context/src/main/java/com/tencent/cloud/polaris/context/config/extend/tsf/TsfCoreEnvironmentPostProcessor.java @@ -26,9 +26,9 @@ import com.tencent.polaris.api.utils.StringUtils; import com.tencent.polaris.plugins.router.lane.BaseLaneMode; import org.apache.commons.logging.Log; +import org.springframework.boot.EnvironmentPostProcessor; import org.springframework.boot.SpringApplication; import org.springframework.boot.context.config.ConfigDataEnvironmentPostProcessor; -import org.springframework.boot.env.EnvironmentPostProcessor; import org.springframework.boot.logging.DeferredLogFactory; import org.springframework.core.Ordered; import org.springframework.core.env.ConfigurableEnvironment; diff --git a/spring-cloud-tencent-polaris-context/src/main/java/com/tencent/cloud/polaris/context/config/extend/tsf/TsfLastEnvironmentPostProcessor.java b/spring-cloud-tencent-polaris-context/src/main/java/com/tencent/cloud/polaris/context/config/extend/tsf/TsfLastEnvironmentPostProcessor.java index 9f7bede36..876c442ed 100644 --- a/spring-cloud-tencent-polaris-context/src/main/java/com/tencent/cloud/polaris/context/config/extend/tsf/TsfLastEnvironmentPostProcessor.java +++ b/spring-cloud-tencent-polaris-context/src/main/java/com/tencent/cloud/polaris/context/config/extend/tsf/TsfLastEnvironmentPostProcessor.java @@ -24,9 +24,9 @@ import com.tencent.cloud.common.tsf.TsfContextUtils; import com.tencent.polaris.api.utils.StringUtils; import org.apache.commons.logging.Log; +import org.springframework.boot.EnvironmentPostProcessor; import org.springframework.boot.SpringApplication; import org.springframework.boot.context.config.ConfigDataEnvironmentPostProcessor; -import org.springframework.boot.env.EnvironmentPostProcessor; import org.springframework.boot.logging.DeferredLogFactory; import org.springframework.core.Ordered; import org.springframework.core.env.ConfigurableEnvironment; diff --git a/spring-cloud-tencent-polaris-context/src/main/java/com/tencent/cloud/polaris/context/logging/PolarisLoggingApplicationListener.java b/spring-cloud-tencent-polaris-context/src/main/java/com/tencent/cloud/polaris/context/logging/PolarisLoggingApplicationListener.java index 4a0f4059d..342d50882 100644 --- a/spring-cloud-tencent-polaris-context/src/main/java/com/tencent/cloud/polaris/context/logging/PolarisLoggingApplicationListener.java +++ b/spring-cloud-tencent-polaris-context/src/main/java/com/tencent/cloud/polaris/context/logging/PolarisLoggingApplicationListener.java @@ -25,7 +25,7 @@ import org.slf4j.LoggerFactory; import org.springframework.boot.context.event.ApplicationEnvironmentPreparedEvent; import org.springframework.boot.context.event.ApplicationFailedEvent; import org.springframework.boot.context.logging.LoggingApplicationListener; -import org.springframework.boot.web.context.WebServerInitializedEvent; +import org.springframework.boot.web.server.context.WebServerInitializedEvent; import org.springframework.cloud.context.environment.EnvironmentChangeEvent; import org.springframework.context.ApplicationEvent; import org.springframework.context.ConfigurableApplicationContext; diff --git a/spring-cloud-tencent-polaris-context/src/main/resources/META-INF/spring.factories b/spring-cloud-tencent-polaris-context/src/main/resources/META-INF/spring.factories index db696eb8e..994e665de 100644 --- a/spring-cloud-tencent-polaris-context/src/main/resources/META-INF/spring.factories +++ b/spring-cloud-tencent-polaris-context/src/main/resources/META-INF/spring.factories @@ -3,7 +3,7 @@ org.springframework.cloud.bootstrap.BootstrapConfiguration=\ org.springframework.context.ApplicationListener=\ com.tencent.cloud.polaris.context.logging.PolarisLoggingApplicationListener,\ com.tencent.cloud.polaris.context.listener.FailedEventApplicationListener -org.springframework.boot.env.EnvironmentPostProcessor=\ +org.springframework.boot.EnvironmentPostProcessor=\ com.tencent.cloud.polaris.context.config.PolarisContextEnvironmentPostProcessor,\ com.tencent.cloud.polaris.context.config.extend.tsf.TsfCoreEnvironmentPostProcessor,\ com.tencent.cloud.polaris.context.config.extend.tsf.TsfLastEnvironmentPostProcessor diff --git a/spring-cloud-tencent-rpc-enhancement/pom.xml b/spring-cloud-tencent-rpc-enhancement/pom.xml index bc67386be..08e919c93 100644 --- a/spring-cloud-tencent-rpc-enhancement/pom.xml +++ b/spring-cloud-tencent-rpc-enhancement/pom.xml @@ -23,7 +23,7 @@ org.springframework.boot - spring-boot-starter-aop + spring-boot-starter-aspectj org.springframework.boot @@ -55,7 +55,7 @@ org.springframework.cloud - spring-cloud-gateway-server + spring-cloud-gateway-server-webflux true diff --git a/spring-cloud-tencent-rpc-enhancement/src/main/java/com/tencent/cloud/rpc/enhancement/instrument/filter/EnhancedReactiveFilter.java b/spring-cloud-tencent-rpc-enhancement/src/main/java/com/tencent/cloud/rpc/enhancement/instrument/filter/EnhancedReactiveFilter.java index e624221c6..ba15cb117 100644 --- a/spring-cloud-tencent-rpc-enhancement/src/main/java/com/tencent/cloud/rpc/enhancement/instrument/filter/EnhancedReactiveFilter.java +++ b/spring-cloud-tencent-rpc-enhancement/src/main/java/com/tencent/cloud/rpc/enhancement/instrument/filter/EnhancedReactiveFilter.java @@ -69,7 +69,7 @@ public class EnhancedReactiveFilter implements WebFilter, Ordered { enhancedPluginContext.setDelay(System.currentTimeMillis() - startMillis); EnhancedResponseContext enhancedResponseContext = EnhancedResponseContext.builder() - .httpStatus(exchange.getResponse().getRawStatusCode()) + .httpStatus(exchange.getResponse().getStatusCode().value()) .httpHeaders(exchange.getResponse().getHeaders()) .build(); enhancedPluginContext.setResponse(enhancedResponseContext); diff --git a/spring-cloud-tencent-rpc-enhancement/src/main/java/com/tencent/cloud/rpc/enhancement/instrument/scg/EnhancedGatewayGlobalFilter.java b/spring-cloud-tencent-rpc-enhancement/src/main/java/com/tencent/cloud/rpc/enhancement/instrument/scg/EnhancedGatewayGlobalFilter.java index 721e8fd64..c80b7258d 100644 --- a/spring-cloud-tencent-rpc-enhancement/src/main/java/com/tencent/cloud/rpc/enhancement/instrument/scg/EnhancedGatewayGlobalFilter.java +++ b/spring-cloud-tencent-rpc-enhancement/src/main/java/com/tencent/cloud/rpc/enhancement/instrument/scg/EnhancedGatewayGlobalFilter.java @@ -46,6 +46,7 @@ import org.springframework.cloud.gateway.route.Route; import org.springframework.core.Ordered; import org.springframework.core.io.buffer.DataBuffer; import org.springframework.http.HttpStatus; +import org.springframework.http.HttpStatusCode; import org.springframework.http.server.reactive.ServerHttpResponse; import org.springframework.web.server.ServerWebExchange; @@ -177,7 +178,7 @@ public class EnhancedGatewayGlobalFilter implements GlobalFilter, Ordered { enhancedPluginContext.setDelay(System.currentTimeMillis() - startTime); EnhancedResponseContext enhancedResponseContext = EnhancedResponseContext.builder() - .httpStatus(exchange.getResponse().getRawStatusCode()) + .httpStatus(Optional.ofNullable(exchange.getResponse().getStatusCode()).map(HttpStatusCode::value).orElse(null)) .httpHeaders(exchange.getResponse().getHeaders()) .build(); enhancedPluginContext.setResponse(enhancedResponseContext); @@ -222,7 +223,7 @@ public class EnhancedGatewayGlobalFilter implements GlobalFilter, Ordered { if (uri != null) { if (route != null && route.getUri().getScheme() .contains("lb") && StringUtils.isNotEmpty(serviceId)) { - DefaultServiceInstance serviceInstance = new DefaultServiceInstance(); + DefaultServiceInstance serviceInstance = new DefaultServiceInstance(null, null, null, 0, false); serviceInstance.setServiceId(serviceId); serviceInstance.setHost(uri.getHost()); serviceInstance.setPort(uri.getPort()); diff --git a/spring-cloud-tencent-rpc-enhancement/src/main/java/com/tencent/cloud/rpc/enhancement/plugin/DefaultEnhancedPluginRunner.java b/spring-cloud-tencent-rpc-enhancement/src/main/java/com/tencent/cloud/rpc/enhancement/plugin/DefaultEnhancedPluginRunner.java index 090473ace..5b4db469d 100644 --- a/spring-cloud-tencent-rpc-enhancement/src/main/java/com/tencent/cloud/rpc/enhancement/plugin/DefaultEnhancedPluginRunner.java +++ b/spring-cloud-tencent-rpc-enhancement/src/main/java/com/tencent/cloud/rpc/enhancement/plugin/DefaultEnhancedPluginRunner.java @@ -67,7 +67,7 @@ public class DefaultEnhancedPluginRunner implements EnhancedPluginRunner { localServiceInstance = registration; } else { - DefaultServiceInstance defaultServiceInstance = new DefaultServiceInstance(); + DefaultServiceInstance defaultServiceInstance = new DefaultServiceInstance(null, null, null, 0, false); defaultServiceInstance.setServiceId(MetadataContext.LOCAL_SERVICE); defaultServiceInstance.setHost(sdkContext.getConfig().getGlobal().getAPI().getBindIP()); localServiceInstance = defaultServiceInstance; diff --git a/spring-cloud-tencent-rpc-enhancement/src/main/java/com/tencent/cloud/rpc/enhancement/plugin/EnhancedPluginContext.java b/spring-cloud-tencent-rpc-enhancement/src/main/java/com/tencent/cloud/rpc/enhancement/plugin/EnhancedPluginContext.java index cde4ae0ce..fcdb2fead 100644 --- a/spring-cloud-tencent-rpc-enhancement/src/main/java/com/tencent/cloud/rpc/enhancement/plugin/EnhancedPluginContext.java +++ b/spring-cloud-tencent-rpc-enhancement/src/main/java/com/tencent/cloud/rpc/enhancement/plugin/EnhancedPluginContext.java @@ -121,7 +121,7 @@ public class EnhancedPluginContext { this.targetServiceInstance = targetServiceInstance; } else if (Objects.nonNull(url)) { - DefaultServiceInstance defaultServiceInstance = new DefaultServiceInstance(); + DefaultServiceInstance defaultServiceInstance = new DefaultServiceInstance(null, null, null, 0, false); defaultServiceInstance.setUri(url); if (defaultServiceInstance.isSecure()) { defaultServiceInstance.setPort(443); @@ -132,7 +132,7 @@ public class EnhancedPluginContext { this.targetServiceInstance = defaultServiceInstance; } else { - this.targetServiceInstance = new DefaultServiceInstance(); + this.targetServiceInstance = new DefaultServiceInstance(null, null, null, 0, false); LOGGER.warn("TargetServiceInstance is empty."); } } diff --git a/spring-cloud-tencent-rpc-enhancement/src/main/java/com/tencent/cloud/rpc/enhancement/plugin/PolarisEnhancedPluginUtils.java b/spring-cloud-tencent-rpc-enhancement/src/main/java/com/tencent/cloud/rpc/enhancement/plugin/PolarisEnhancedPluginUtils.java index 26f4bee64..8411a7ac8 100644 --- a/spring-cloud-tencent-rpc-enhancement/src/main/java/com/tencent/cloud/rpc/enhancement/plugin/PolarisEnhancedPluginUtils.java +++ b/spring-cloud-tencent-rpc-enhancement/src/main/java/com/tencent/cloud/rpc/enhancement/plugin/PolarisEnhancedPluginUtils.java @@ -29,9 +29,6 @@ import java.util.List; import java.util.Map; import java.util.Objects; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.core.type.TypeReference; -import com.fasterxml.jackson.databind.ObjectMapper; import com.tencent.cloud.common.constant.HeaderConstant; import com.tencent.cloud.common.constant.MetadataConstant; import com.tencent.cloud.common.constant.RouterConstant; @@ -50,6 +47,9 @@ import com.tencent.polaris.api.utils.CollectionUtils; import com.tencent.polaris.api.utils.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import tools.jackson.core.JacksonException; +import tools.jackson.core.type.TypeReference; +import tools.jackson.databind.json.JsonMapper; import org.springframework.beans.BeansException; import org.springframework.http.HttpHeaders; @@ -204,7 +204,7 @@ public final class PolarisEnhancedPluginUtils { } static RetStatus getRetStatusFromRequest(HttpHeaders headers, RetStatus defaultVal) { - if (headers != null && headers.containsKey(HeaderConstant.INTERNAL_CALLEE_RET_STATUS)) { + if (headers != null && headers.containsHeader(HeaderConstant.INTERNAL_CALLEE_RET_STATUS)) { List values = headers.get(HeaderConstant.INTERNAL_CALLEE_RET_STATUS); if (CollectionUtils.isNotEmpty(values)) { String retStatusVal = com.tencent.polaris.api.utils.StringUtils.defaultString(values.get(0)); @@ -220,7 +220,7 @@ public final class PolarisEnhancedPluginUtils { } static String getActiveRuleNameFromRequest(HttpHeaders headers) { - if (headers != null && headers.containsKey(HeaderConstant.INTERNAL_ACTIVE_RULE_NAME)) { + if (headers != null && headers.containsHeader(HeaderConstant.INTERNAL_ACTIVE_RULE_NAME)) { Collection values = headers.get(HeaderConstant.INTERNAL_ACTIVE_RULE_NAME); if (CollectionUtils.isNotEmpty(values)) { String decodedActiveRuleName = ""; @@ -285,9 +285,9 @@ public final class PolarisEnhancedPluginUtils { LOG.error("unsupported charset exception " + UTF_8, e); } try { - return new ObjectMapper().readValue(label, new TypeReference>() { }); + return new JsonMapper().readValue(label, new TypeReference>() { }); } - catch (JsonProcessingException e) { + catch (JacksonException e) { LOG.error("parse label map exception", e); } } diff --git a/spring-cloud-tencent-rpc-enhancement/src/main/java/com/tencent/cloud/rpc/enhancement/plugin/reporter/ExceptionPolarisReporter.java b/spring-cloud-tencent-rpc-enhancement/src/main/java/com/tencent/cloud/rpc/enhancement/plugin/reporter/ExceptionPolarisReporter.java index 7e9cbab27..8bef9c67c 100644 --- a/spring-cloud-tencent-rpc-enhancement/src/main/java/com/tencent/cloud/rpc/enhancement/plugin/reporter/ExceptionPolarisReporter.java +++ b/spring-cloud-tencent-rpc-enhancement/src/main/java/com/tencent/cloud/rpc/enhancement/plugin/reporter/ExceptionPolarisReporter.java @@ -72,8 +72,8 @@ public class ExceptionPolarisReporter implements EnhancedPlugin { } EnhancedRequestContext request = context.getRequest(); - ServiceInstance callerServiceInstance = Optional.ofNullable(context.getLocalServiceInstance()).orElse(new DefaultServiceInstance()); - ServiceInstance calleeServiceInstance = Optional.ofNullable(context.getTargetServiceInstance()).orElse(new DefaultServiceInstance()); + ServiceInstance callerServiceInstance = Optional.ofNullable(context.getLocalServiceInstance()).orElse(new DefaultServiceInstance(null, null, null, 0, false)); + ServiceInstance calleeServiceInstance = Optional.ofNullable(context.getTargetServiceInstance()).orElse(new DefaultServiceInstance(null, null, null, 0, false)); ServiceCallResult resultRequest = PolarisEnhancedPluginUtils.createServiceCallResult( callerServiceInstance.getHost(), diff --git a/spring-cloud-tencent-rpc-enhancement/src/main/java/com/tencent/cloud/rpc/enhancement/plugin/reporter/SuccessPolarisReporter.java b/spring-cloud-tencent-rpc-enhancement/src/main/java/com/tencent/cloud/rpc/enhancement/plugin/reporter/SuccessPolarisReporter.java index 8c195e63e..c3ae9efa5 100644 --- a/spring-cloud-tencent-rpc-enhancement/src/main/java/com/tencent/cloud/rpc/enhancement/plugin/reporter/SuccessPolarisReporter.java +++ b/spring-cloud-tencent-rpc-enhancement/src/main/java/com/tencent/cloud/rpc/enhancement/plugin/reporter/SuccessPolarisReporter.java @@ -73,8 +73,8 @@ public class SuccessPolarisReporter implements EnhancedPlugin { EnhancedRequestContext request = context.getRequest(); EnhancedResponseContext response = context.getResponse(); - ServiceInstance callerServiceInstance = Optional.ofNullable(context.getLocalServiceInstance()).orElse(new DefaultServiceInstance()); - ServiceInstance calleeServiceInstance = Optional.ofNullable(context.getTargetServiceInstance()).orElse(new DefaultServiceInstance()); + ServiceInstance callerServiceInstance = Optional.ofNullable(context.getLocalServiceInstance()).orElse(new DefaultServiceInstance(null, null, null, 0, false)); + ServiceInstance calleeServiceInstance = Optional.ofNullable(context.getTargetServiceInstance()).orElse(new DefaultServiceInstance(null, null, null, 0, false)); ServiceCallResult resultRequest = PolarisEnhancedPluginUtils.createServiceCallResult( callerServiceInstance.getHost(), diff --git a/spring-cloud-tencent-rpc-enhancement/src/test/java/com/tencent/cloud/rpc/enhancement/config/RpcEnhancementAutoConfigurationTest.java b/spring-cloud-tencent-rpc-enhancement/src/test/java/com/tencent/cloud/rpc/enhancement/config/RpcEnhancementAutoConfigurationTest.java index be2a6ad18..fc25d6305 100644 --- a/spring-cloud-tencent-rpc-enhancement/src/test/java/com/tencent/cloud/rpc/enhancement/config/RpcEnhancementAutoConfigurationTest.java +++ b/spring-cloud-tencent-rpc-enhancement/src/test/java/com/tencent/cloud/rpc/enhancement/config/RpcEnhancementAutoConfigurationTest.java @@ -49,7 +49,8 @@ public class RpcEnhancementAutoConfigurationTest { RpcEnhancementAutoConfiguration.class, PolarisRestTemplateAutoConfigurationTester.class, FeignLoadBalancerAutoConfiguration.class)) - .withPropertyValues("spring.cloud.polaris.circuitbreaker.enabled=true", "spring.application.name=test", "spring.cloud.gateway.enabled=false"); + .withPropertyValues("spring.cloud.polaris.circuitbreaker.enabled=true", "spring.application.name=test", "spring.cloud.gateway.enabled=false", + "spring.autoconfigure.exclude=org.springframework.cloud.gateway.config.GatewayAutoConfiguration,org.springframework.cloud.gateway.config.GatewayClassPathWarningAutoConfiguration,org.springframework.cloud.gateway.config.GatewayMetricsAutoConfiguration"); @Test public void testDefaultInitialization() { diff --git a/spring-cloud-tencent-rpc-enhancement/src/test/java/com/tencent/cloud/rpc/enhancement/config/RpcEnhancementPropertiesTest.java b/spring-cloud-tencent-rpc-enhancement/src/test/java/com/tencent/cloud/rpc/enhancement/config/RpcEnhancementPropertiesTest.java index cafd558bf..d9f7a39eb 100644 --- a/spring-cloud-tencent-rpc-enhancement/src/test/java/com/tencent/cloud/rpc/enhancement/config/RpcEnhancementPropertiesTest.java +++ b/spring-cloud-tencent-rpc-enhancement/src/test/java/com/tencent/cloud/rpc/enhancement/config/RpcEnhancementPropertiesTest.java @@ -38,7 +38,8 @@ import static org.assertj.core.api.Assertions.assertThat; "spring.application.name=test", "spring.cloud.gateway.enabled=false", "spring.cloud.tencent.rpc-enhancement=true", - "spring.cloud.tencent.rpc-enhancement.ignore-body=false" + "spring.cloud.tencent.rpc-enhancement.ignore-body=false", + "spring.autoconfigure.exclude=org.springframework.cloud.gateway.config.GatewayAutoConfiguration,org.springframework.cloud.gateway.config.GatewayClassPathWarningAutoConfiguration,org.springframework.cloud.gateway.config.GatewayMetricsAutoConfiguration" }) @ActiveProfiles("test") public class RpcEnhancementPropertiesTest { diff --git a/spring-cloud-tencent-rpc-enhancement/src/test/java/com/tencent/cloud/rpc/enhancement/config/RpcEnhancementReporterPropertiesTest.java b/spring-cloud-tencent-rpc-enhancement/src/test/java/com/tencent/cloud/rpc/enhancement/config/RpcEnhancementReporterPropertiesTest.java index 60a91f359..50f25c1fc 100644 --- a/spring-cloud-tencent-rpc-enhancement/src/test/java/com/tencent/cloud/rpc/enhancement/config/RpcEnhancementReporterPropertiesTest.java +++ b/spring-cloud-tencent-rpc-enhancement/src/test/java/com/tencent/cloud/rpc/enhancement/config/RpcEnhancementReporterPropertiesTest.java @@ -41,7 +41,8 @@ import static org.springframework.http.HttpStatus.Series.SERVER_ERROR; @SpringBootTest(classes = RpcEnhancementReporterPropertiesTest.TestApplication.class, properties = { "spring.application.name=test", "spring.cloud.gateway.enabled=false", - "spring.cloud.tencent.rpc-enhancement.reporter=true" + "spring.cloud.tencent.rpc-enhancement.reporter=true", + "spring.autoconfigure.exclude=org.springframework.cloud.gateway.config.GatewayAutoConfiguration,org.springframework.cloud.gateway.config.GatewayClassPathWarningAutoConfiguration,org.springframework.cloud.gateway.config.GatewayMetricsAutoConfiguration" }) @ActiveProfiles("test") public class RpcEnhancementReporterPropertiesTest { diff --git a/spring-cloud-tencent-rpc-enhancement/src/test/java/com/tencent/cloud/rpc/enhancement/instrument/feign/EnhancedFeignClientTest.java b/spring-cloud-tencent-rpc-enhancement/src/test/java/com/tencent/cloud/rpc/enhancement/instrument/feign/EnhancedFeignClientTest.java index eec56a45c..8444040a5 100644 --- a/spring-cloud-tencent-rpc-enhancement/src/test/java/com/tencent/cloud/rpc/enhancement/instrument/feign/EnhancedFeignClientTest.java +++ b/spring-cloud-tencent-rpc-enhancement/src/test/java/com/tencent/cloud/rpc/enhancement/instrument/feign/EnhancedFeignClientTest.java @@ -59,7 +59,8 @@ import static org.mockito.Mockito.mock; */ @ExtendWith(SpringExtension.class) @SpringBootTest(classes = EnhancedFeignClientTest.TestApplication.class, - properties = {"spring.cloud.polaris.namespace=Test", "spring.cloud.polaris.service=TestApp", "spring.cloud.gateway.enabled=false"}) + properties = {"spring.cloud.polaris.namespace=Test", "spring.cloud.polaris.service=TestApp", "spring.cloud.gateway.enabled=false", + "spring.autoconfigure.exclude=org.springframework.cloud.gateway.config.GatewayAutoConfiguration,org.springframework.cloud.gateway.config.GatewayClassPathWarningAutoConfiguration,org.springframework.cloud.gateway.config.GatewayMetricsAutoConfiguration"}) public class EnhancedFeignClientTest { @Autowired diff --git a/spring-cloud-tencent-rpc-enhancement/src/test/java/com/tencent/cloud/rpc/enhancement/instrument/webclient/EnhancedWebClientExchangeFilterFunctionTest.java b/spring-cloud-tencent-rpc-enhancement/src/test/java/com/tencent/cloud/rpc/enhancement/instrument/webclient/EnhancedWebClientExchangeFilterFunctionTest.java index 4f3eae8a6..99eaefeaa 100644 --- a/spring-cloud-tencent-rpc-enhancement/src/test/java/com/tencent/cloud/rpc/enhancement/instrument/webclient/EnhancedWebClientExchangeFilterFunctionTest.java +++ b/spring-cloud-tencent-rpc-enhancement/src/test/java/com/tencent/cloud/rpc/enhancement/instrument/webclient/EnhancedWebClientExchangeFilterFunctionTest.java @@ -170,7 +170,7 @@ public class EnhancedWebClientExchangeFilterFunctionTest { StepVerifier.create(responseMono) .expectNextMatches(response -> { assertThat(response.statusCode()).isEqualTo(HttpStatus.SERVICE_UNAVAILABLE); - assertThat(response.headers().asHttpHeaders().containsKey("header-key")).isTrue(); + assertThat(response.headers().asHttpHeaders().containsHeader("header-key")).isTrue(); return true; }) .verifyComplete(); diff --git a/spring-cloud-tencent-rpc-enhancement/src/test/java/com/tencent/cloud/rpc/enhancement/plugin/EnhancedPluginContextTest.java b/spring-cloud-tencent-rpc-enhancement/src/test/java/com/tencent/cloud/rpc/enhancement/plugin/EnhancedPluginContextTest.java index b0961b561..fd309cc31 100644 --- a/spring-cloud-tencent-rpc-enhancement/src/test/java/com/tencent/cloud/rpc/enhancement/plugin/EnhancedPluginContextTest.java +++ b/spring-cloud-tencent-rpc-enhancement/src/test/java/com/tencent/cloud/rpc/enhancement/plugin/EnhancedPluginContextTest.java @@ -121,7 +121,7 @@ public class EnhancedPluginContextTest { EnhancedPluginContext enhancedPluginContext = new EnhancedPluginContext(); enhancedPluginContext.setRequest(requestContext); enhancedPluginContext.setResponse(responseContext); - enhancedPluginContext.setTargetServiceInstance(new DefaultServiceInstance(), null); + enhancedPluginContext.setTargetServiceInstance(new DefaultServiceInstance(null, null, null, 0, false), null); enhancedPluginContext.setThrowable(mock(Exception.class)); enhancedPluginContext.setDelay(0); assertThat(enhancedPluginContext.getRequest()).isNotNull(); @@ -161,7 +161,7 @@ public class EnhancedPluginContextTest { EnhancedPluginContext enhancedPluginContext = new EnhancedPluginContext(); // targetServiceInstance != null - DefaultServiceInstance testDefaultServiceInstance = new DefaultServiceInstance(); + DefaultServiceInstance testDefaultServiceInstance = new DefaultServiceInstance(null, null, null, 1, false); testDefaultServiceInstance.setPort(1); enhancedPluginContext.setTargetServiceInstance(testDefaultServiceInstance, null); assertThat(enhancedPluginContext.getTargetServiceInstance().getPort()).isEqualTo(1); diff --git a/spring-cloud-tencent-rpc-enhancement/src/test/java/com/tencent/cloud/rpc/enhancement/plugin/ExceptionPolarisReporterTest.java b/spring-cloud-tencent-rpc-enhancement/src/test/java/com/tencent/cloud/rpc/enhancement/plugin/ExceptionPolarisReporterTest.java index 06b215c96..8c82227c9 100644 --- a/spring-cloud-tencent-rpc-enhancement/src/test/java/com/tencent/cloud/rpc/enhancement/plugin/ExceptionPolarisReporterTest.java +++ b/spring-cloud-tencent-rpc-enhancement/src/test/java/com/tencent/cloud/rpc/enhancement/plugin/ExceptionPolarisReporterTest.java @@ -119,7 +119,7 @@ public class ExceptionPolarisReporterTest { .httpStatus(200) .build(); response.toString(); - DefaultServiceInstance serviceInstance = new DefaultServiceInstance(); + DefaultServiceInstance serviceInstance = new DefaultServiceInstance(null, null, null, 0, false); serviceInstance.setServiceId(SERVICE_PROVIDER); pluginContext.setRequest(request); diff --git a/spring-cloud-tencent-rpc-enhancement/src/test/java/com/tencent/cloud/rpc/enhancement/plugin/SuccessPolarisReporterTest.java b/spring-cloud-tencent-rpc-enhancement/src/test/java/com/tencent/cloud/rpc/enhancement/plugin/SuccessPolarisReporterTest.java index ad58fd4d5..915aa4153 100644 --- a/spring-cloud-tencent-rpc-enhancement/src/test/java/com/tencent/cloud/rpc/enhancement/plugin/SuccessPolarisReporterTest.java +++ b/spring-cloud-tencent-rpc-enhancement/src/test/java/com/tencent/cloud/rpc/enhancement/plugin/SuccessPolarisReporterTest.java @@ -117,7 +117,7 @@ public class SuccessPolarisReporterTest { .httpStatus(200) .build(); response.toString(); - DefaultServiceInstance serviceInstance = new DefaultServiceInstance(); + DefaultServiceInstance serviceInstance = new DefaultServiceInstance(null, null, null, 0, false); serviceInstance.setServiceId(SERVICE_PROVIDER); pluginContext.setRequest(request); diff --git a/spring-cloud-tencent-rpc-enhancement/src/test/java/com/tencent/cloud/rpc/enhancement/stat/config/StatConfigModifierTest.java b/spring-cloud-tencent-rpc-enhancement/src/test/java/com/tencent/cloud/rpc/enhancement/stat/config/StatConfigModifierTest.java index 1e47d314d..5f89782be 100644 --- a/spring-cloud-tencent-rpc-enhancement/src/test/java/com/tencent/cloud/rpc/enhancement/stat/config/StatConfigModifierTest.java +++ b/spring-cloud-tencent-rpc-enhancement/src/test/java/com/tencent/cloud/rpc/enhancement/stat/config/StatConfigModifierTest.java @@ -45,7 +45,8 @@ public class StatConfigModifierTest { .withPropertyValues("spring.cloud.polaris.stat.port=20000") .withPropertyValues("spring.cloud.polaris.stat.path=/xxx") .withPropertyValues("spring.application.name=test") - .withPropertyValues("spring.cloud.gateway.enabled=false"); + .withPropertyValues("spring.cloud.gateway.enabled=false") + .withPropertyValues("spring.autoconfigure.exclude=org.springframework.cloud.gateway.config.GatewayAutoConfiguration,org.springframework.cloud.gateway.config.GatewayClassPathWarningAutoConfiguration,org.springframework.cloud.gateway.config.GatewayMetricsAutoConfiguration"); private final ApplicationContextRunner pushContextRunner = new ApplicationContextRunner() .withConfiguration(AutoConfigurations.of(TestApplication.class)) @@ -58,14 +59,16 @@ public class StatConfigModifierTest { .withPropertyValues("spring.cloud.polaris.stat.pushgateway.namespace=test-namespace") .withPropertyValues("spring.cloud.polaris.stat.pushgateway.service=test-service") .withPropertyValues("spring.application.name=test") - .withPropertyValues("spring.cloud.gateway.enabled=false"); + .withPropertyValues("spring.cloud.gateway.enabled=false") + .withPropertyValues("spring.autoconfigure.exclude=org.springframework.cloud.gateway.config.GatewayAutoConfiguration,org.springframework.cloud.gateway.config.GatewayClassPathWarningAutoConfiguration,org.springframework.cloud.gateway.config.GatewayMetricsAutoConfiguration"); private final ApplicationContextRunner disabledContextRunner = new ApplicationContextRunner() .withConfiguration(AutoConfigurations.of(TestApplication.class)) .withPropertyValues("spring.cloud.polaris.enabled=true") .withPropertyValues("spring.cloud.polaris.stat.enabled=false") .withPropertyValues("spring.application.name=test") - .withPropertyValues("spring.cloud.gateway.enabled=false"); + .withPropertyValues("spring.cloud.gateway.enabled=false") + .withPropertyValues("spring.autoconfigure.exclude=org.springframework.cloud.gateway.config.GatewayAutoConfiguration,org.springframework.cloud.gateway.config.GatewayClassPathWarningAutoConfiguration,org.springframework.cloud.gateway.config.GatewayMetricsAutoConfiguration"); @BeforeEach void setUp() {