From 8c9da70750ff0ac4f6bd2c431994c43b905a4e6d Mon Sep 17 00:00:00 2001 From: skyehtzhang Date: Sat, 2 Apr 2022 14:47:17 +0800 Subject: [PATCH] feat:feat:add spring cloud Greenwich support --- .github/workflows/junit_test.yml | 26 +- .gitignore | 1 + pom.xml | 129 +++--- .../gateway/Metadata2HeaderScgFilter.java | 5 +- .../Metadata2HeaderFeignInterceptor.java | 4 +- .../Metadata2HeaderFeignInterceptorTest.java | 12 +- ...ata2HeaderRestTemplateInterceptorTest.java | 5 +- ...sCircuitBreakerBootstrapConfiguration.java | 5 +- .../PolarisFeignClientAutoConfiguration.java | 5 +- .../feign/PolarisFeignBeanPostProcessor.java | 9 - ...olarisFeignBlockingLoadBalancerClient.java | 38 -- .../feign/PolarisFeignClientTest.java | 8 +- .../feign/TestPolarisFeignApp.java | 3 +- .../PolarisConfigAutoConfiguration.java | 5 +- ...larisConfigBootstrapAutoConfiguration.java | 5 +- .../ConditionalOnPolarisDiscoveryEnabled.java | 3 +- .../PolarisDiscoveryAutoConfiguration.java | 7 +- .../PolarisDiscoveryClientConfiguration.java | 4 +- .../PolarisReactiveDiscoveryClient.java | 88 ---- ...sReactiveDiscoveryClientConfiguration.java | 51 -- ...larisServiceRegistryAutoConfiguration.java | 5 +- ...larisDiscoveryRibbonAutoConfiguration.java | 2 +- ...larisDiscoveryClientConfigurationTest.java | 3 +- ...ctiveDiscoveryClientConfigurationTest.java | 80 ---- .../PolarisReactiveDiscoveryClientTest.java | 81 ---- .../config/RateLimitConfiguration.java | 3 +- .../controller/CalleeControllerTests.java | 6 +- .../PolarisRibbonAutoConfiguration.java | 5 +- .../metadata/aop/MetadataFeignAspect.java | 53 +++ .../config/MetadataAutoConfiguration.java | 6 + .../gateway/MetadataFirstScgFilter.java | 2 +- .../feign/MetadataFirstFeignInterceptor.java | 5 +- .../cloud/common/util/JacksonUtils.java | 3 +- .../metadata/MetadataContextHolderTest.java | 5 +- .../config/MetadataLocalPropertiesTest.java | 5 +- .../web/MetadataReactiveFilterTest.java | 5 +- .../filter/web/MetadataServletFilterTest.java | 5 +- spring-cloud-tencent-dependencies/pom.xml | 436 +++++++++--------- .../circuitbreaker/example/ProviderB.java | 3 +- .../caller/DiscoveryCalleeService.java | 3 +- spring-cloud-tencent-polaris-context/pom.xml | 162 +++---- .../context/PolarisContextProperties.java | 2 + .../context/PolarisContextGetHostTest.java | 6 +- 43 files changed, 500 insertions(+), 799 deletions(-) delete mode 100644 spring-cloud-starter-tencent-polaris-circuitbreaker/src/main/java/com/tencent/cloud/polaris/circuitbreaker/feign/PolarisFeignBlockingLoadBalancerClient.java delete mode 100644 spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/discovery/reactive/PolarisReactiveDiscoveryClient.java delete mode 100644 spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/discovery/reactive/PolarisReactiveDiscoveryClientConfiguration.java delete mode 100644 spring-cloud-starter-tencent-polaris-discovery/src/test/java/com/tencent/cloud/polaris/discovery/reactive/PolarisReactiveDiscoveryClientConfigurationTest.java delete mode 100644 spring-cloud-starter-tencent-polaris-discovery/src/test/java/com/tencent/cloud/polaris/discovery/reactive/PolarisReactiveDiscoveryClientTest.java create mode 100644 spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/metadata/aop/MetadataFeignAspect.java diff --git a/.github/workflows/junit_test.yml b/.github/workflows/junit_test.yml index 5738a4508..6f31ae930 100644 --- a/.github/workflows/junit_test.yml +++ b/.github/workflows/junit_test.yml @@ -5,9 +5,9 @@ name: Test with Junit on: push: - branches: [ main ] + branches: [ greenwich-new ] pull_request: - branches: [ main ] + branches: [ greenwich-new ] jobs: build: @@ -15,14 +15,14 @@ jobs: runs-on: ubuntu-latest steps: - - name: Checkout codes - uses: actions/checkout@v2 - - name: Set up JDK 8 - uses: actions/setup-java@v2 - with: - java-version: '8' - distribution: 'adopt' -# - name: Build with Maven -# run: mvn -B package --file pom.xml - - name: Test with Maven - run: mvn -B test --file pom.xml + - name: Checkout codes + uses: actions/checkout@v2 + - name: Set up JDK 8 + uses: actions/setup-java@v2 + with: + java-version: '8' + distribution: 'adopt' + # - name: Build with Maven + # run: mvn -B package --file pom.xml + - name: Test with Maven + run: mvn -B test --file pom.xml diff --git a/.gitignore b/.gitignore index 704fcd5cd..3344ee569 100644 --- a/.gitignore +++ b/.gitignore @@ -51,6 +51,7 @@ applog/ .flattened-pom.xml # Polaris +polaris */backup /backup backup diff --git a/pom.xml b/pom.xml index d70a45685..908c81076 100644 --- a/pom.xml +++ b/pom.xml @@ -1,43 +1,43 @@ - - org.springframework.cloud - spring-cloud-build - 2.3.4.RELEASE - - - 4.0.0 + xmlns="http://maven.apache.org/POM/4.0.0" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + + org.springframework.cloud + spring-cloud-build + 2.1.11.RELEASE + + + 4.0.0 - com.tencent.cloud - spring-cloud-tencent - pom - ${revision} - Spring Cloud Tencent - Spring Cloud Tencent - https://github.com/Tencent/spring-cloud-tencent/tree/main + com.tencent.cloud + spring-cloud-tencent + pom + ${revision} + Spring Cloud Tencent + Spring Cloud Tencent + https://github.com/Tencent/spring-cloud-tencent/tree/main - - Tencent - https://opensource.tencent.com/ - + + Tencent + https://opensource.tencent.com/ + - - - The BSD 3-Clause License (BSD3) - https://raw.githubusercontent.com/Tencent/spring-cloud-tencent/main/LICENSE - repo - - + + + The BSD 3-Clause License (BSD3) + https://raw.githubusercontent.com/Tencent/spring-cloud-tencent/main/LICENSE + repo + + - - https://github.com/Tencent/spring-cloud-tencent - scm:git:git@github.com:Tencent/spring-cloud-tencent.git - scm:git:git@github.com:Tencent/spring-cloud-tencent.git - + + https://github.com/Tencent/spring-cloud-tencent + scm:git:git@github.com:Tencent/spring-cloud-tencent.git + scm:git:git@github.com:Tencent/spring-cloud-tencent.git + - + spring-cloud-tencent-polaris-context spring-cloud-tencent-commons spring-cloud-starter-tencent-metadata-transfer @@ -48,7 +48,7 @@ spring-cloud-tencent-dependencies spring-cloud-tencent-examples spring-cloud-tencent-coverage - spring-cloud-starter-tencent-polaris-config + spring-cloud-starter-tencent-polaris-config @@ -77,13 +77,14 @@ - 1.2.0-Hoxton.SR9-SNAPSHOT + 1.2.0-Greenwich-SNAPSHOT - Hoxton.SR9 + Greenwich.SR6 1.2.7 + 23.0 0.8.3 @@ -122,6 +123,12 @@ logback-classic ${logback.version} + + + com.google.guava + guava + ${guava.version} + @@ -266,31 +273,31 @@ - + - - - nexus-snapshots - https://oss.sonatype.org/content/repositories/snapshots/ - - - nexus-releases - https://oss.sonatype.org/service/local/staging/deploy/maven2/ - - - - + + + nexus-snapshots + https://oss.sonatype.org/content/repositories/snapshots/ + + + nexus-releases + https://oss.sonatype.org/service/local/staging/deploy/maven2/ + + + + - - - nexus-snapshots - https://oss.sonatype.org/content/repositories/snapshots/ - - false - - - true - - - + + + nexus-snapshots + https://oss.sonatype.org/content/repositories/snapshots/ + + false + + + true + + + diff --git a/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/filter/gateway/Metadata2HeaderScgFilter.java b/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/filter/gateway/Metadata2HeaderScgFilter.java index ce81ad8e1..10e5cfab5 100644 --- a/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/filter/gateway/Metadata2HeaderScgFilter.java +++ b/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/filter/gateway/Metadata2HeaderScgFilter.java @@ -70,10 +70,11 @@ public class Metadata2HeaderScgFilter implements GlobalFilter, Ordered { String metadataStr = JacksonUtils.serialize2Json(customMetadata); try { builder.header(MetadataConstant.HeaderName.CUSTOM_METADATA, - URLEncoder.encode(metadataStr, "UTF-8")); + new String[] { URLEncoder.encode(metadataStr, "UTF-8") }); } catch (UnsupportedEncodingException e) { - builder.header(MetadataConstant.HeaderName.CUSTOM_METADATA, metadataStr); + builder.header(MetadataConstant.HeaderName.CUSTOM_METADATA, + new String[] { metadataStr }); } } diff --git a/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/interceptor/Metadata2HeaderFeignInterceptor.java b/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/interceptor/Metadata2HeaderFeignInterceptor.java index 99cb21d68..65b901d5b 100644 --- a/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/interceptor/Metadata2HeaderFeignInterceptor.java +++ b/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/interceptor/Metadata2HeaderFeignInterceptor.java @@ -19,6 +19,7 @@ package com.tencent.cloud.metadata.core.interceptor; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; +import java.util.Collections; import java.util.Map; import com.tencent.cloud.common.constant.MetadataConstant; @@ -74,7 +75,8 @@ public class Metadata2HeaderFeignInterceptor implements RequestInterceptor, Orde .getAllTransitiveCustomMetadata(); if (!CollectionUtils.isEmpty(customMetadata)) { String metadataStr = JacksonUtils.serialize2Json(customMetadata); - requestTemplate.removeHeader(CUSTOM_METADATA); + // empty value, clear the existing values + requestTemplate.header(CUSTOM_METADATA, Collections.emptyList()); try { requestTemplate.header(CUSTOM_METADATA, URLEncoder.encode(metadataStr, "UTF-8")); diff --git a/spring-cloud-starter-tencent-metadata-transfer/src/test/java/com/tencent/cloud/metadata/core/intercepter/Metadata2HeaderFeignInterceptorTest.java b/spring-cloud-starter-tencent-metadata-transfer/src/test/java/com/tencent/cloud/metadata/core/intercepter/Metadata2HeaderFeignInterceptorTest.java index 97ee8a787..13cdb988e 100644 --- a/spring-cloud-starter-tencent-metadata-transfer/src/test/java/com/tencent/cloud/metadata/core/intercepter/Metadata2HeaderFeignInterceptorTest.java +++ b/spring-cloud-starter-tencent-metadata-transfer/src/test/java/com/tencent/cloud/metadata/core/intercepter/Metadata2HeaderFeignInterceptorTest.java @@ -50,10 +50,8 @@ import static org.springframework.boot.test.context.SpringBootTest.WebEnvironmen * @author Haotian Zhang */ @RunWith(SpringRunner.class) -@SpringBootTest(webEnvironment = DEFINED_PORT, - classes = Metadata2HeaderFeignInterceptorTest.TestApplication.class, - properties = { "server.port=8081", - "spring.config.location = classpath:application-test.yml" }) +@SpringBootTest(webEnvironment = DEFINED_PORT, classes = Metadata2HeaderFeignInterceptorTest.TestApplication.class, properties = { + "server.port=8081", "spring.config.location = classpath:application-test.yml" }) public class Metadata2HeaderFeignInterceptorTest { @Autowired @@ -99,9 +97,9 @@ public class Metadata2HeaderFeignInterceptorTest { @FeignClient(name = "test-feign", url = "http://localhost:8081") public interface TestFeign { - @RequestMapping(value = "/test", - headers = { MetadataConstant.HeaderName.CUSTOM_METADATA - + "={\"a\":\"11" + "\",\"b\":\"22\",\"c\":\"33\"}" }) + @RequestMapping(value = "/test", headers = { + MetadataConstant.HeaderName.CUSTOM_METADATA + "={\"a\":\"11" + + "\",\"b\":\"22\",\"c\":\"33\"}" }) String test(); } diff --git a/spring-cloud-starter-tencent-metadata-transfer/src/test/java/com/tencent/cloud/metadata/core/intercepter/Metadata2HeaderRestTemplateInterceptorTest.java b/spring-cloud-starter-tencent-metadata-transfer/src/test/java/com/tencent/cloud/metadata/core/intercepter/Metadata2HeaderRestTemplateInterceptorTest.java index 353f57918..b0dab532f 100644 --- a/spring-cloud-starter-tencent-metadata-transfer/src/test/java/com/tencent/cloud/metadata/core/intercepter/Metadata2HeaderRestTemplateInterceptorTest.java +++ b/spring-cloud-starter-tencent-metadata-transfer/src/test/java/com/tencent/cloud/metadata/core/intercepter/Metadata2HeaderRestTemplateInterceptorTest.java @@ -51,9 +51,8 @@ import static org.springframework.boot.test.context.SpringBootTest.WebEnvironmen * @author Haotian Zhang */ @RunWith(SpringRunner.class) -@SpringBootTest(webEnvironment = RANDOM_PORT, - classes = Metadata2HeaderRestTemplateInterceptorTest.TestApplication.class, - properties = { "spring.config.location = classpath:application-test.yml" }) +@SpringBootTest(webEnvironment = RANDOM_PORT, classes = Metadata2HeaderRestTemplateInterceptorTest.TestApplication.class, properties = { + "spring.config.location = classpath:application-test.yml" }) public class Metadata2HeaderRestTemplateInterceptorTest { @Autowired diff --git a/spring-cloud-starter-tencent-polaris-circuitbreaker/src/main/java/com/tencent/cloud/polaris/circuitbreaker/PolarisCircuitBreakerBootstrapConfiguration.java b/spring-cloud-starter-tencent-polaris-circuitbreaker/src/main/java/com/tencent/cloud/polaris/circuitbreaker/PolarisCircuitBreakerBootstrapConfiguration.java index 3718ba4bf..fab355c29 100644 --- a/spring-cloud-starter-tencent-polaris-circuitbreaker/src/main/java/com/tencent/cloud/polaris/circuitbreaker/PolarisCircuitBreakerBootstrapConfiguration.java +++ b/spring-cloud-starter-tencent-polaris-circuitbreaker/src/main/java/com/tencent/cloud/polaris/circuitbreaker/PolarisCircuitBreakerBootstrapConfiguration.java @@ -30,9 +30,8 @@ import org.springframework.context.annotation.Configuration; * * @author lepdou 2022-03-29 */ -@ConditionalOnProperty(value = "spring.cloud.polaris.circuitbreaker.enabled", - havingValue = "true", matchIfMissing = true) -@Configuration(proxyBeanMethods = false) +@ConditionalOnProperty(value = "spring.cloud.polaris.circuitbreaker.enabled", havingValue = "true", matchIfMissing = true) +@Configuration public class PolarisCircuitBreakerBootstrapConfiguration { @Bean diff --git a/spring-cloud-starter-tencent-polaris-circuitbreaker/src/main/java/com/tencent/cloud/polaris/circuitbreaker/PolarisFeignClientAutoConfiguration.java b/spring-cloud-starter-tencent-polaris-circuitbreaker/src/main/java/com/tencent/cloud/polaris/circuitbreaker/PolarisFeignClientAutoConfiguration.java index b03d14910..6973dd661 100644 --- a/spring-cloud-starter-tencent-polaris-circuitbreaker/src/main/java/com/tencent/cloud/polaris/circuitbreaker/PolarisFeignClientAutoConfiguration.java +++ b/spring-cloud-starter-tencent-polaris-circuitbreaker/src/main/java/com/tencent/cloud/polaris/circuitbreaker/PolarisFeignClientAutoConfiguration.java @@ -39,9 +39,8 @@ import static org.springframework.core.Ordered.HIGHEST_PRECEDENCE; * * @author Haotian Zhang */ -@ConditionalOnProperty(value = "spring.cloud.polaris.circuitbreaker.enabled", - havingValue = "true", matchIfMissing = true) -@Configuration(proxyBeanMethods = false) +@ConditionalOnProperty(value = "spring.cloud.polaris.circuitbreaker.enabled", havingValue = "true", matchIfMissing = true) +@Configuration @AutoConfigureAfter(PolarisContextConfiguration.class) @AutoConfigureBefore(FeignAutoConfiguration.class) public class PolarisFeignClientAutoConfiguration { diff --git a/spring-cloud-starter-tencent-polaris-circuitbreaker/src/main/java/com/tencent/cloud/polaris/circuitbreaker/feign/PolarisFeignBeanPostProcessor.java b/spring-cloud-starter-tencent-polaris-circuitbreaker/src/main/java/com/tencent/cloud/polaris/circuitbreaker/feign/PolarisFeignBeanPostProcessor.java index da6726481..662d64e9e 100644 --- a/spring-cloud-starter-tencent-polaris-circuitbreaker/src/main/java/com/tencent/cloud/polaris/circuitbreaker/feign/PolarisFeignBeanPostProcessor.java +++ b/spring-cloud-starter-tencent-polaris-circuitbreaker/src/main/java/com/tencent/cloud/polaris/circuitbreaker/feign/PolarisFeignBeanPostProcessor.java @@ -24,9 +24,7 @@ import org.springframework.beans.BeansException; import org.springframework.beans.factory.BeanFactory; import org.springframework.beans.factory.BeanFactoryAware; import org.springframework.beans.factory.config.BeanPostProcessor; -import org.springframework.cloud.loadbalancer.blocking.client.BlockingLoadBalancerClient; import org.springframework.cloud.netflix.ribbon.SpringClientFactory; -import org.springframework.cloud.openfeign.loadbalancer.FeignBlockingLoadBalancerClient; import org.springframework.cloud.openfeign.ribbon.CachingSpringLoadBalancerFactory; import org.springframework.cloud.openfeign.ribbon.LoadBalancerFeignClient; @@ -60,12 +58,6 @@ public class PolarisFeignBeanPostProcessor createPolarisFeignClient(client.getDelegate()), factory(), clientFactory()); } - if (bean instanceof FeignBlockingLoadBalancerClient) { - FeignBlockingLoadBalancerClient client = (FeignBlockingLoadBalancerClient) bean; - return new PolarisFeignBlockingLoadBalancerClient( - createPolarisFeignClient(client.getDelegate()), - factory.getBean(BlockingLoadBalancerClient.class)); - } return createPolarisFeignClient((Client) bean); } return bean; @@ -73,7 +65,6 @@ public class PolarisFeignBeanPostProcessor private boolean isNeedWrap(Object bean) { return bean instanceof Client && !(bean instanceof PolarisFeignClient) - && !(bean instanceof PolarisFeignBlockingLoadBalancerClient) && !(bean instanceof PolarisLoadBalancerFeignClient); } diff --git a/spring-cloud-starter-tencent-polaris-circuitbreaker/src/main/java/com/tencent/cloud/polaris/circuitbreaker/feign/PolarisFeignBlockingLoadBalancerClient.java b/spring-cloud-starter-tencent-polaris-circuitbreaker/src/main/java/com/tencent/cloud/polaris/circuitbreaker/feign/PolarisFeignBlockingLoadBalancerClient.java deleted file mode 100644 index 9adaa6bfe..000000000 --- a/spring-cloud-starter-tencent-polaris-circuitbreaker/src/main/java/com/tencent/cloud/polaris/circuitbreaker/feign/PolarisFeignBlockingLoadBalancerClient.java +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Tencent is pleased to support the open source community by making Spring Cloud Tencent available. - * - * Copyright (C) 2019 THL A29 Limited, a Tencent company. All rights reserved. - * - * Licensed under the BSD 3-Clause License (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://opensource.org/licenses/BSD-3-Clause - * - * Unless required by applicable law or agreed to in writing, software distributed - * under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR - * CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package com.tencent.cloud.polaris.circuitbreaker.feign; - -import feign.Client; - -import org.springframework.cloud.loadbalancer.blocking.client.BlockingLoadBalancerClient; -import org.springframework.cloud.openfeign.loadbalancer.FeignBlockingLoadBalancerClient; - -/** - * Wrap for {@link FeignBlockingLoadBalancerClient}. - * - * @author Haotian Zhang - */ -public class PolarisFeignBlockingLoadBalancerClient - extends FeignBlockingLoadBalancerClient { - - public PolarisFeignBlockingLoadBalancerClient(Client delegate, - BlockingLoadBalancerClient loadBalancerClient) { - super(delegate, loadBalancerClient); - } - -} diff --git a/spring-cloud-starter-tencent-polaris-circuitbreaker/src/test/java/com/tencent/cloud/polaris/circuitbreaker/feign/PolarisFeignClientTest.java b/spring-cloud-starter-tencent-polaris-circuitbreaker/src/test/java/com/tencent/cloud/polaris/circuitbreaker/feign/PolarisFeignClientTest.java index 0c196a53c..bc1e56f7f 100644 --- a/spring-cloud-starter-tencent-polaris-circuitbreaker/src/test/java/com/tencent/cloud/polaris/circuitbreaker/feign/PolarisFeignClientTest.java +++ b/spring-cloud-starter-tencent-polaris-circuitbreaker/src/test/java/com/tencent/cloud/polaris/circuitbreaker/feign/PolarisFeignClientTest.java @@ -21,7 +21,6 @@ import com.tencent.cloud.polaris.circuitbreaker.PolarisFeignClientAutoConfigurat import com.tencent.cloud.polaris.context.PolarisContextConfiguration; import feign.Client; import org.junit.Test; -import org.junit.jupiter.api.Assertions; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; @@ -30,6 +29,8 @@ import org.springframework.context.ApplicationContext; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringRunner; +import static org.assertj.core.api.Assertions.assertThat; + /** * Test for {@link PolarisFeignClient}. * @@ -48,7 +49,7 @@ public class PolarisFeignClientTest { public void testPolarisFeignBeanPostProcessor() { final PolarisFeignBeanPostProcessor postProcessor = springCtx .getBean(PolarisFeignBeanPostProcessor.class); - Assertions.assertNotNull(postProcessor, "PolarisFeignBeanPostProcessor"); + assertThat(postProcessor).isNotNull(); } @Test @@ -60,9 +61,6 @@ public class PolarisFeignClientTest { if (client instanceof PolarisLoadBalancerFeignClient) { return; } - if (client instanceof PolarisFeignBlockingLoadBalancerClient) { - return; - } throw new IllegalStateException("Polaris burying failed"); } diff --git a/spring-cloud-starter-tencent-polaris-circuitbreaker/src/test/java/com/tencent/cloud/polaris/circuitbreaker/feign/TestPolarisFeignApp.java b/spring-cloud-starter-tencent-polaris-circuitbreaker/src/test/java/com/tencent/cloud/polaris/circuitbreaker/feign/TestPolarisFeignApp.java index b593392d5..7034de7ca 100644 --- a/spring-cloud-starter-tencent-polaris-circuitbreaker/src/test/java/com/tencent/cloud/polaris/circuitbreaker/feign/TestPolarisFeignApp.java +++ b/spring-cloud-starter-tencent-polaris-circuitbreaker/src/test/java/com/tencent/cloud/polaris/circuitbreaker/feign/TestPolarisFeignApp.java @@ -37,8 +37,7 @@ public class TestPolarisFeignApp { SpringApplication.run(TestPolarisFeignApp.class); } - @FeignClient(name = "feign-service-polaris", - fallback = TestPolarisServiceFallback.class) + @FeignClient(name = "feign-service-polaris", fallback = TestPolarisServiceFallback.class) public interface TestPolarisService { /** diff --git a/spring-cloud-starter-tencent-polaris-config/src/main/java/com/tencent/cloud/polaris/config/PolarisConfigAutoConfiguration.java b/spring-cloud-starter-tencent-polaris-config/src/main/java/com/tencent/cloud/polaris/config/PolarisConfigAutoConfiguration.java index 1146e3a84..54d4cd6df 100644 --- a/spring-cloud-starter-tencent-polaris-config/src/main/java/com/tencent/cloud/polaris/config/PolarisConfigAutoConfiguration.java +++ b/spring-cloud-starter-tencent-polaris-config/src/main/java/com/tencent/cloud/polaris/config/PolarisConfigAutoConfiguration.java @@ -32,9 +32,8 @@ import org.springframework.context.annotation.Configuration; * * @author lepdou 2022-03-28 */ -@Configuration(proxyBeanMethods = false) -@ConditionalOnProperty(value = "spring.cloud.polaris.config.enabled", - matchIfMissing = true) +@Configuration +@ConditionalOnProperty(value = "spring.cloud.polaris.config.enabled", matchIfMissing = true) public class PolarisConfigAutoConfiguration { @Bean diff --git a/spring-cloud-starter-tencent-polaris-config/src/main/java/com/tencent/cloud/polaris/config/PolarisConfigBootstrapAutoConfiguration.java b/spring-cloud-starter-tencent-polaris-config/src/main/java/com/tencent/cloud/polaris/config/PolarisConfigBootstrapAutoConfiguration.java index 296793d0a..2dca5d17a 100644 --- a/spring-cloud-starter-tencent-polaris-config/src/main/java/com/tencent/cloud/polaris/config/PolarisConfigBootstrapAutoConfiguration.java +++ b/spring-cloud-starter-tencent-polaris-config/src/main/java/com/tencent/cloud/polaris/config/PolarisConfigBootstrapAutoConfiguration.java @@ -36,9 +36,8 @@ import org.springframework.context.annotation.Import; * * @author lepdou 2022-03-10 */ -@Configuration(proxyBeanMethods = false) -@ConditionalOnProperty(value = "spring.cloud.polaris.config.enabled", - matchIfMissing = true) +@Configuration +@ConditionalOnProperty(value = "spring.cloud.polaris.config.enabled", matchIfMissing = true) @Import(PolarisContextConfiguration.class) public class PolarisConfigBootstrapAutoConfiguration { diff --git a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/discovery/ConditionalOnPolarisDiscoveryEnabled.java b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/discovery/ConditionalOnPolarisDiscoveryEnabled.java index 49bcea808..7e5fe70ad 100644 --- a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/discovery/ConditionalOnPolarisDiscoveryEnabled.java +++ b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/discovery/ConditionalOnPolarisDiscoveryEnabled.java @@ -31,8 +31,7 @@ import org.springframework.cloud.client.ConditionalOnDiscoveryEnabled; @Retention(RetentionPolicy.RUNTIME) @Target({ ElementType.TYPE, ElementType.METHOD }) @ConditionalOnDiscoveryEnabled -@ConditionalOnProperty(value = "spring.cloud.polaris.discovery.enabled", - matchIfMissing = true) +@ConditionalOnProperty(value = "spring.cloud.polaris.discovery.enabled", matchIfMissing = true) public @interface ConditionalOnPolarisDiscoveryEnabled { } diff --git a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/discovery/PolarisDiscoveryAutoConfiguration.java b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/discovery/PolarisDiscoveryAutoConfiguration.java index 34551aaf6..590f5a326 100644 --- a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/discovery/PolarisDiscoveryAutoConfiguration.java +++ b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/discovery/PolarisDiscoveryAutoConfiguration.java @@ -19,7 +19,6 @@ package com.tencent.cloud.polaris.discovery; import com.tencent.cloud.polaris.PolarisDiscoveryProperties; -import com.tencent.cloud.polaris.discovery.reactive.PolarisReactiveDiscoveryClientConfiguration; import com.tencent.cloud.polaris.extend.consul.ConsulContextProperties; import com.tencent.polaris.api.core.ConsumerAPI; import com.tencent.polaris.api.core.ProviderAPI; @@ -37,11 +36,9 @@ import org.springframework.context.annotation.Import; * * @author Haotian Zhang, Andrew Shan, Jie Cheng */ -@Configuration(proxyBeanMethods = false) +@Configuration @ConditionalOnPolarisDiscoveryEnabled -@Import({ PolarisDiscoveryClientConfiguration.class, - PolarisReactiveDiscoveryClientConfiguration.class, - ConsulContextProperties.class }) +@Import({ PolarisDiscoveryClientConfiguration.class, ConsulContextProperties.class }) public class PolarisDiscoveryAutoConfiguration { @Bean diff --git a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/discovery/PolarisDiscoveryClientConfiguration.java b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/discovery/PolarisDiscoveryClientConfiguration.java index 249685946..55126302e 100644 --- a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/discovery/PolarisDiscoveryClientConfiguration.java +++ b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/discovery/PolarisDiscoveryClientConfiguration.java @@ -20,7 +20,6 @@ package com.tencent.cloud.polaris.discovery; import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.boot.autoconfigure.AutoConfigureBefore; import org.springframework.cloud.client.CommonsClientAutoConfiguration; -import org.springframework.cloud.client.ConditionalOnBlockingDiscoveryEnabled; import org.springframework.cloud.client.discovery.DiscoveryClient; import org.springframework.cloud.client.discovery.simple.SimpleDiscoveryClientAutoConfiguration; import org.springframework.context.annotation.Bean; @@ -31,8 +30,7 @@ import org.springframework.context.annotation.Configuration; * * @author Haotian Zhang, Andrew Shan, Jie Cheng */ -@Configuration(proxyBeanMethods = false) -@ConditionalOnBlockingDiscoveryEnabled +@Configuration @AutoConfigureBefore({ SimpleDiscoveryClientAutoConfiguration.class, CommonsClientAutoConfiguration.class }) @AutoConfigureAfter(PolarisDiscoveryAutoConfiguration.class) diff --git a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/discovery/reactive/PolarisReactiveDiscoveryClient.java b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/discovery/reactive/PolarisReactiveDiscoveryClient.java deleted file mode 100644 index aa098ac04..000000000 --- a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/discovery/reactive/PolarisReactiveDiscoveryClient.java +++ /dev/null @@ -1,88 +0,0 @@ -/* - * Tencent is pleased to support the open source community by making Spring Cloud Tencent available. - * - * Copyright (C) 2019 THL A29 Limited, a Tencent company. All rights reserved. - * - * Licensed under the BSD 3-Clause License (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://opensource.org/licenses/BSD-3-Clause - * - * Unless required by applicable law or agreed to in writing, software distributed - * under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR - * CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package com.tencent.cloud.polaris.discovery.reactive; - -import java.util.function.Function; - -import com.tencent.cloud.polaris.discovery.PolarisServiceDiscovery; -import com.tencent.polaris.api.exception.PolarisException; -import org.reactivestreams.Publisher; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import reactor.core.publisher.Flux; -import reactor.core.publisher.Mono; -import reactor.core.scheduler.Schedulers; - -import org.springframework.cloud.client.ServiceInstance; -import org.springframework.cloud.client.discovery.ReactiveDiscoveryClient; - -/** - * Reactive Discovery Client for Polaris. - * - * @author Haotian Zhang, Andrew Shan, Jie Cheng - */ -public class PolarisReactiveDiscoveryClient implements ReactiveDiscoveryClient { - - private static final Logger log = LoggerFactory - .getLogger(PolarisReactiveDiscoveryClient.class); - - private PolarisServiceDiscovery polarisServiceDiscovery; - - public PolarisReactiveDiscoveryClient( - PolarisServiceDiscovery polarisServiceDiscovery) { - this.polarisServiceDiscovery = polarisServiceDiscovery; - } - - @Override - public String description() { - return "Spring Cloud Polaris Reactive Discovery Client"; - } - - @Override - public Flux getInstances(String serviceId) { - - return Mono.justOrEmpty(serviceId).flatMapMany(loadInstancesFromPolaris()) - .subscribeOn(Schedulers.boundedElastic()); - } - - private Function> loadInstancesFromPolaris() { - return serviceId -> { - try { - return Flux.fromIterable(polarisServiceDiscovery.getInstances(serviceId)); - } - catch (PolarisException e) { - log.error("get service instance[{}] from polaris error!", serviceId, e); - return Flux.empty(); - } - }; - } - - @Override - public Flux getServices() { - return Flux.defer(() -> { - try { - return Flux.fromIterable(polarisServiceDiscovery.getServices()); - } - catch (Exception e) { - log.error("get services from polaris server fail,", e); - return Flux.empty(); - } - }).subscribeOn(Schedulers.boundedElastic()); - } - -} diff --git a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/discovery/reactive/PolarisReactiveDiscoveryClientConfiguration.java b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/discovery/reactive/PolarisReactiveDiscoveryClientConfiguration.java deleted file mode 100644 index 09928e208..000000000 --- a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/discovery/reactive/PolarisReactiveDiscoveryClientConfiguration.java +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Tencent is pleased to support the open source community by making Spring Cloud Tencent available. - * - * Copyright (C) 2019 THL A29 Limited, a Tencent company. All rights reserved. - * - * Licensed under the BSD 3-Clause License (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://opensource.org/licenses/BSD-3-Clause - * - * Unless required by applicable law or agreed to in writing, software distributed - * under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR - * CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package com.tencent.cloud.polaris.discovery.reactive; - -import com.tencent.cloud.polaris.discovery.PolarisDiscoveryAutoConfiguration; -import com.tencent.cloud.polaris.discovery.PolarisServiceDiscovery; - -import org.springframework.boot.autoconfigure.AutoConfigureAfter; -import org.springframework.boot.autoconfigure.AutoConfigureBefore; -import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; -import org.springframework.cloud.client.ConditionalOnReactiveDiscoveryEnabled; -import org.springframework.cloud.client.ReactiveCommonsClientAutoConfiguration; -import org.springframework.cloud.client.discovery.composite.reactive.ReactiveCompositeDiscoveryClientAutoConfiguration; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; - -/** - * Reactive Discovery Client Configuration for Polaris. - * - * @author Haotian Zhang, Andrew Shan, Jie Cheng - */ -@Configuration(proxyBeanMethods = false) -@ConditionalOnReactiveDiscoveryEnabled -@AutoConfigureAfter({ PolarisDiscoveryAutoConfiguration.class, - ReactiveCompositeDiscoveryClientAutoConfiguration.class }) -@AutoConfigureBefore({ ReactiveCommonsClientAutoConfiguration.class }) -public class PolarisReactiveDiscoveryClientConfiguration { - - @Bean - @ConditionalOnMissingBean - public PolarisReactiveDiscoveryClient polarisReactiveDiscoveryClient( - PolarisServiceDiscovery polarisServiceDiscovery) { - return new PolarisReactiveDiscoveryClient(polarisServiceDiscovery); - } - -} 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 7a07bae39..2e43df07e 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 @@ -40,11 +40,10 @@ import org.springframework.context.annotation.Configuration; * * @author Haotian Zhang, Andrew Shan, Jie Cheng */ -@Configuration(proxyBeanMethods = false) +@Configuration @EnableConfigurationProperties @ConditionalOnPolarisDiscoveryEnabled -@ConditionalOnProperty(value = "spring.cloud.service-registry.auto-registration.enabled", - matchIfMissing = true) +@ConditionalOnProperty(value = "spring.cloud.service-registry.auto-registration.enabled", matchIfMissing = true) @AutoConfigureAfter({ AutoServiceRegistrationConfiguration.class, AutoServiceRegistrationAutoConfiguration.class, PolarisDiscoveryAutoConfiguration.class }) diff --git a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/ribbon/PolarisDiscoveryRibbonAutoConfiguration.java b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/ribbon/PolarisDiscoveryRibbonAutoConfiguration.java index 34ecb8d9f..461197dbc 100644 --- a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/ribbon/PolarisDiscoveryRibbonAutoConfiguration.java +++ b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/ribbon/PolarisDiscoveryRibbonAutoConfiguration.java @@ -30,7 +30,7 @@ import org.springframework.context.annotation.Configuration; * * @author Haotian Zhang, Andrew Shan, Jie Cheng */ -@Configuration(proxyBeanMethods = false) +@Configuration @EnableConfigurationProperties @ConditionalOnPolarisDiscoveryEnabled @AutoConfigureAfter(RibbonAutoConfiguration.class) diff --git a/spring-cloud-starter-tencent-polaris-discovery/src/test/java/com/tencent/cloud/polaris/discovery/PolarisDiscoveryClientConfigurationTest.java b/spring-cloud-starter-tencent-polaris-discovery/src/test/java/com/tencent/cloud/polaris/discovery/PolarisDiscoveryClientConfigurationTest.java index 0de511243..c2bb22e83 100644 --- a/spring-cloud-starter-tencent-polaris-discovery/src/test/java/com/tencent/cloud/polaris/discovery/PolarisDiscoveryClientConfigurationTest.java +++ b/spring-cloud-starter-tencent-polaris-discovery/src/test/java/com/tencent/cloud/polaris/discovery/PolarisDiscoveryClientConfigurationTest.java @@ -70,8 +70,7 @@ public class PolarisDiscoveryClientConfigurationTest { @Test public void testDiscoveryBlockingDisabled() { - this.contextRunner - .withPropertyValues("spring.cloud.discovery.blocking.enabled=false") + this.contextRunner.withPropertyValues("spring.cloud.discovery.enabled=false") .run(context -> assertThat(context) .doesNotHaveBean(PolarisDiscoveryClient.class)); } diff --git a/spring-cloud-starter-tencent-polaris-discovery/src/test/java/com/tencent/cloud/polaris/discovery/reactive/PolarisReactiveDiscoveryClientConfigurationTest.java b/spring-cloud-starter-tencent-polaris-discovery/src/test/java/com/tencent/cloud/polaris/discovery/reactive/PolarisReactiveDiscoveryClientConfigurationTest.java deleted file mode 100644 index 1069b364e..000000000 --- a/spring-cloud-starter-tencent-polaris-discovery/src/test/java/com/tencent/cloud/polaris/discovery/reactive/PolarisReactiveDiscoveryClientConfigurationTest.java +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Tencent is pleased to support the open source community by making Spring Cloud Tencent available. - * - * Copyright (C) 2019 THL A29 Limited, a Tencent company. All rights reserved. - * - * Licensed under the BSD 3-Clause License (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://opensource.org/licenses/BSD-3-Clause - * - * Unless required by applicable law or agreed to in writing, software distributed - * under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR - * CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package com.tencent.cloud.polaris.discovery.reactive; - -import com.tencent.cloud.polaris.context.PolarisContextConfiguration; -import com.tencent.cloud.polaris.discovery.PolarisDiscoveryClientConfiguration; -import com.tencent.polaris.test.mock.discovery.NamingServer; -import org.junit.AfterClass; -import org.junit.BeforeClass; -import org.junit.Test; - -import org.springframework.boot.autoconfigure.AutoConfigurations; -import org.springframework.boot.autoconfigure.EnableAutoConfiguration; -import org.springframework.boot.test.context.runner.WebApplicationContextRunner; -import org.springframework.cloud.client.discovery.EnableDiscoveryClient; -import org.springframework.context.annotation.Configuration; - -import static com.tencent.polaris.test.common.Consts.PORT; -import static com.tencent.polaris.test.common.Consts.SERVICE_PROVIDER; -import static org.assertj.core.api.Assertions.assertThat; - -/** - * Test for {@link PolarisReactiveDiscoveryClientConfiguration} - * - * @author Haotian Zhang - */ -public class PolarisReactiveDiscoveryClientConfigurationTest { - - private static NamingServer namingServer; - - private WebApplicationContextRunner contextRunner = new WebApplicationContextRunner() - .withConfiguration(AutoConfigurations.of(PolarisContextConfiguration.class, - PolarisReactiveDiscoveryClientConfiguration.class, - PolarisDiscoveryClientConfiguration.class, - PolarisContextConfiguration.class)) - .withPropertyValues("spring.application.name=" + SERVICE_PROVIDER) - .withPropertyValues("server.port=" + PORT) - .withPropertyValues("spring.cloud.polaris.address=grpc://127.0.0.1:10081"); - - @BeforeClass - public static void beforeClass() throws Exception { - namingServer = NamingServer.startNamingServer(10081); - } - - @AfterClass - public static void afterClass() throws Exception { - if (null != namingServer) { - namingServer.terminate(); - } - } - - @Test - public void testDefaultInitialization() { - this.contextRunner.run(context -> assertThat(context) - .hasSingleBean(PolarisReactiveDiscoveryClient.class)); - } - - @Configuration - @EnableAutoConfiguration - @EnableDiscoveryClient - static class PolarisReactiveDiscoveryClientConfiguration { - - } - -} diff --git a/spring-cloud-starter-tencent-polaris-discovery/src/test/java/com/tencent/cloud/polaris/discovery/reactive/PolarisReactiveDiscoveryClientTest.java b/spring-cloud-starter-tencent-polaris-discovery/src/test/java/com/tencent/cloud/polaris/discovery/reactive/PolarisReactiveDiscoveryClientTest.java deleted file mode 100644 index 99aa8f1df..000000000 --- a/spring-cloud-starter-tencent-polaris-discovery/src/test/java/com/tencent/cloud/polaris/discovery/reactive/PolarisReactiveDiscoveryClientTest.java +++ /dev/null @@ -1,81 +0,0 @@ -/* - * Tencent is pleased to support the open source community by making Spring Cloud Tencent available. - * - * Copyright (C) 2019 THL A29 Limited, a Tencent company. All rights reserved. - * - * Licensed under the BSD 3-Clause License (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://opensource.org/licenses/BSD-3-Clause - * - * Unless required by applicable law or agreed to in writing, software distributed - * under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR - * CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package com.tencent.cloud.polaris.discovery.reactive; - -import java.util.Arrays; - -import com.tencent.cloud.polaris.discovery.PolarisServiceDiscovery; -import com.tencent.polaris.api.exception.PolarisException; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.InjectMocks; -import org.mockito.Mock; -import org.powermock.core.classloader.annotations.PowerMockIgnore; -import org.powermock.modules.junit4.PowerMockRunner; -import reactor.core.publisher.Flux; -import reactor.test.StepVerifier; - -import org.springframework.cloud.client.ServiceInstance; - -import static com.tencent.polaris.test.common.Consts.SERVICE_PROVIDER; -import static java.util.Collections.singletonList; -import static org.mockito.Mockito.when; - -/** - * Test for {@link PolarisReactiveDiscoveryClient} - * - * @author Haotian Zhang - */ -@RunWith(PowerMockRunner.class) -@PowerMockIgnore("javax.management.*") -public class PolarisReactiveDiscoveryClientTest { - - @Mock - private PolarisServiceDiscovery serviceDiscovery; - - @Mock - private ServiceInstance serviceInstance; - - @InjectMocks - private PolarisReactiveDiscoveryClient client; - - @Test - public void testGetInstances() throws PolarisException { - - when(serviceDiscovery.getInstances(SERVICE_PROVIDER)) - .thenReturn(singletonList(serviceInstance)); - - Flux instances = this.client.getInstances(SERVICE_PROVIDER); - - StepVerifier.create(instances).expectNextCount(1).expectComplete().verify(); - } - - @Test - public void testGetServices() throws PolarisException { - - when(serviceDiscovery.getServices()) - .thenReturn(Arrays.asList(SERVICE_PROVIDER + 1, SERVICE_PROVIDER + 2)); - - Flux services = this.client.getServices(); - - StepVerifier.create(services) - .expectNext(SERVICE_PROVIDER + 1, SERVICE_PROVIDER + 2).expectComplete() - .verify(); - } - -} diff --git a/spring-cloud-starter-tencent-polaris-ratelimit/src/main/java/com/tencent/cloud/polaris/ratelimit/config/RateLimitConfiguration.java b/spring-cloud-starter-tencent-polaris-ratelimit/src/main/java/com/tencent/cloud/polaris/ratelimit/config/RateLimitConfiguration.java index 27a161892..7c87a300a 100644 --- a/spring-cloud-starter-tencent-polaris-ratelimit/src/main/java/com/tencent/cloud/polaris/ratelimit/config/RateLimitConfiguration.java +++ b/spring-cloud-starter-tencent-polaris-ratelimit/src/main/java/com/tencent/cloud/polaris/ratelimit/config/RateLimitConfiguration.java @@ -41,8 +41,7 @@ import static javax.servlet.DispatcherType.REQUEST; * @author Haotian Zhang */ @Configuration -@ConditionalOnProperty(name = "spring.cloud.polaris.ratelimit.enabled", - matchIfMissing = true) +@ConditionalOnProperty(name = "spring.cloud.polaris.ratelimit.enabled", matchIfMissing = true) public class RateLimitConfiguration { @Bean diff --git a/spring-cloud-starter-tencent-polaris-ratelimit/src/test/java/com/tencent/cloud/polaris/ratelimit/controller/CalleeControllerTests.java b/spring-cloud-starter-tencent-polaris-ratelimit/src/test/java/com/tencent/cloud/polaris/ratelimit/controller/CalleeControllerTests.java index 4aabf24c2..65d3a408c 100644 --- a/spring-cloud-starter-tencent-polaris-ratelimit/src/test/java/com/tencent/cloud/polaris/ratelimit/controller/CalleeControllerTests.java +++ b/spring-cloud-starter-tencent-polaris-ratelimit/src/test/java/com/tencent/cloud/polaris/ratelimit/controller/CalleeControllerTests.java @@ -55,9 +55,9 @@ import static org.mockito.Mockito.when; * @author Haotian Zhang */ @RunWith(SpringRunner.class) -@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, - classes = { CalleeControllerTests.Config.class, TestController.class }, - properties = { "spring.application.name=java_provider_test", +@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = { + CalleeControllerTests.Config.class, TestController.class }, properties = { + "spring.application.name=java_provider_test", "spring.cloud.polaris.discovery.namespace=Test", "spring.cloud.polaris.address=grpc://127.0.0.1:10081" }) public class CalleeControllerTests { diff --git a/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/config/PolarisRibbonAutoConfiguration.java b/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/config/PolarisRibbonAutoConfiguration.java index 5a7469ea3..00ac5badf 100644 --- a/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/config/PolarisRibbonAutoConfiguration.java +++ b/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/config/PolarisRibbonAutoConfiguration.java @@ -36,10 +36,9 @@ import org.springframework.context.annotation.Configuration; * * @author Haotian Zhang */ -@Configuration(proxyBeanMethods = false) +@Configuration @EnableConfigurationProperties -@ConditionalOnProperty(value = "spring.cloud.polaris.loadbalancer.enabled", - matchIfMissing = true) +@ConditionalOnProperty(value = "spring.cloud.polaris.loadbalancer.enabled", matchIfMissing = true) @AutoConfigureAfter(RibbonAutoConfiguration.class) @RibbonClients(defaultConfiguration = PolarisRibbonClientConfiguration.class) public class PolarisRibbonAutoConfiguration { diff --git a/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/metadata/aop/MetadataFeignAspect.java b/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/metadata/aop/MetadataFeignAspect.java new file mode 100644 index 000000000..922286e01 --- /dev/null +++ b/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/metadata/aop/MetadataFeignAspect.java @@ -0,0 +1,53 @@ +/* + * Tencent is pleased to support the open source community by making Spring Cloud Tencent available. + * + * Copyright (C) 2019 THL A29 Limited, a Tencent company. All rights reserved. + * + * Licensed under the BSD 3-Clause License (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://opensource.org/licenses/BSD-3-Clause + * + * Unless required by applicable law or agreed to in writing, software distributed + * under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR + * CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + */ + +package com.tencent.cloud.common.metadata.aop; + +import java.net.URI; + +import com.tencent.cloud.common.constant.MetadataConstant; +import com.tencent.cloud.common.metadata.MetadataContextHolder; +import feign.Request; +import org.aspectj.lang.JoinPoint; +import org.aspectj.lang.annotation.Aspect; +import org.aspectj.lang.annotation.Before; +import org.aspectj.lang.annotation.Pointcut; + +/** + * Aspect for getting service name of peer-service in Feign of Greenwich. + * + * @author Haotian Zhang + */ +@Aspect +public class MetadataFeignAspect { + + @Pointcut("execution(* feign.Client.execute(..))") + public void execute() { + } + + /** + * Get service name before execution of Feign client. + * + * @param joinPoint join point + */ + @Before("execute()") + public void doBefore(JoinPoint joinPoint) { + Request request = (Request) joinPoint.getArgs()[0]; + MetadataContextHolder.get().putSystemMetadata(MetadataConstant.SystemMetadataKey.PEER_SERVICE, + URI.create(request.url()).getAuthority()); + } +} diff --git a/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/metadata/config/MetadataAutoConfiguration.java b/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/metadata/config/MetadataAutoConfiguration.java index b7254737f..77ac8712d 100644 --- a/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/metadata/config/MetadataAutoConfiguration.java +++ b/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/metadata/config/MetadataAutoConfiguration.java @@ -19,6 +19,7 @@ package com.tencent.cloud.common.metadata.config; import com.netflix.zuul.ZuulFilter; import com.tencent.cloud.common.constant.MetadataConstant; +import com.tencent.cloud.common.metadata.aop.MetadataFeignAspect; import com.tencent.cloud.common.metadata.filter.gateway.MetadataFirstScgFilter; import com.tencent.cloud.common.metadata.filter.gateway.MetadataFirstZuulFilter; import com.tencent.cloud.common.metadata.filter.web.MetadataReactiveFilter; @@ -107,6 +108,11 @@ public class MetadataAutoConfiguration { return new MetadataFirstFeignInterceptor(); } + @Bean + public MetadataFeignAspect metadataFeignAspect() { + return new MetadataFeignAspect(); + } + } /** diff --git a/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/metadata/filter/gateway/MetadataFirstScgFilter.java b/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/metadata/filter/gateway/MetadataFirstScgFilter.java index 13952a6c5..97e6ac4dd 100644 --- a/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/metadata/filter/gateway/MetadataFirstScgFilter.java +++ b/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/metadata/filter/gateway/MetadataFirstScgFilter.java @@ -66,7 +66,7 @@ public class MetadataFirstScgFilter implements GlobalFilter, Ordered { MetadataConstant.SystemMetadataKey.PEER_NAMESPACE, MetadataContext.LOCAL_NAMESPACE); metadataContext.putSystemMetadata(MetadataConstant.SystemMetadataKey.PEER_SERVICE, - route.getId()); + route.getUri().getAuthority()); metadataContext.putSystemMetadata(MetadataConstant.SystemMetadataKey.PEER_PATH, exchange.getRequest().getURI().getPath()); diff --git a/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/metadata/interceptor/feign/MetadataFirstFeignInterceptor.java b/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/metadata/interceptor/feign/MetadataFirstFeignInterceptor.java index 18f5390ab..31e0388bd 100644 --- a/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/metadata/interceptor/feign/MetadataFirstFeignInterceptor.java +++ b/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/metadata/interceptor/feign/MetadataFirstFeignInterceptor.java @@ -46,8 +46,9 @@ public class MetadataFirstFeignInterceptor implements RequestInterceptor, Ordere metadataContext.putSystemMetadata( MetadataConstant.SystemMetadataKey.PEER_NAMESPACE, MetadataContext.LOCAL_NAMESPACE); - metadataContext.putSystemMetadata(MetadataConstant.SystemMetadataKey.PEER_SERVICE, - requestTemplate.feignTarget().name()); + // Cannot get service name of peer-service in Feign interceptor of Greenwich. + // metadataContext.putSystemMetadata(MetadataConstant.SystemMetadataKey.PEER_SERVICE, + // requestTemplate.feignTarget().name()); metadataContext.putSystemMetadata(MetadataConstant.SystemMetadataKey.PEER_PATH, requestTemplate.path()); } 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 628c718a1..fec3434c0 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 @@ -17,6 +17,7 @@ package com.tencent.cloud.common.util; +import java.io.IOException; import java.util.HashMap; import java.util.Map; @@ -73,7 +74,7 @@ public final class JacksonUtils { } return new HashMap<>(); } - catch (JsonProcessingException e) { + catch (IOException e) { LOG.error( "Json to map failed. check if the format of the json string[{}] is correct.", jsonStr, e); 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 6883ae50d..b945ac9aa 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 @@ -34,9 +34,8 @@ import org.springframework.test.context.junit4.SpringRunner; * @author Haotian Zhang */ @RunWith(SpringRunner.class) -@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, - classes = MetadataContextHolderTest.TestApplication.class, - properties = { "spring.config.location = classpath:application-test.yml" }) +@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = MetadataContextHolderTest.TestApplication.class, properties = { + "spring.config.location = classpath:application-test.yml" }) public class MetadataContextHolderTest { @Test 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 44128591c..00e27d1fc 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 @@ -32,9 +32,8 @@ import org.springframework.test.context.junit4.SpringRunner; * @author Haotian Zhang */ @RunWith(SpringRunner.class) -@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, - classes = MetadataLocalPropertiesTest.TestApplication.class, - properties = { "spring.config.location = classpath:application-test.yml" }) +@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = MetadataLocalPropertiesTest.TestApplication.class, properties = { + "spring.config.location = classpath:application-test.yml" }) public class MetadataLocalPropertiesTest { @Autowired diff --git a/spring-cloud-tencent-commons/src/test/java/com/tencent/cloud/common/metadata/filter/web/MetadataReactiveFilterTest.java b/spring-cloud-tencent-commons/src/test/java/com/tencent/cloud/common/metadata/filter/web/MetadataReactiveFilterTest.java index d32fc77fd..d825db920 100644 --- a/spring-cloud-tencent-commons/src/test/java/com/tencent/cloud/common/metadata/filter/web/MetadataReactiveFilterTest.java +++ b/spring-cloud-tencent-commons/src/test/java/com/tencent/cloud/common/metadata/filter/web/MetadataReactiveFilterTest.java @@ -41,9 +41,8 @@ import static org.springframework.boot.test.context.SpringBootTest.WebEnvironmen * @author Haotian Zhang */ @RunWith(SpringRunner.class) -@SpringBootTest(webEnvironment = MOCK, - classes = MetadataServletFilterTest.TestApplication.class, - properties = { "spring.config.location = classpath:application-test.yml" }) +@SpringBootTest(webEnvironment = MOCK, classes = MetadataServletFilterTest.TestApplication.class, properties = { + "spring.config.location = classpath:application-test.yml" }) public class MetadataReactiveFilterTest { @Autowired diff --git a/spring-cloud-tencent-commons/src/test/java/com/tencent/cloud/common/metadata/filter/web/MetadataServletFilterTest.java b/spring-cloud-tencent-commons/src/test/java/com/tencent/cloud/common/metadata/filter/web/MetadataServletFilterTest.java index 7b6db59b4..96b22cc38 100644 --- a/spring-cloud-tencent-commons/src/test/java/com/tencent/cloud/common/metadata/filter/web/MetadataServletFilterTest.java +++ b/spring-cloud-tencent-commons/src/test/java/com/tencent/cloud/common/metadata/filter/web/MetadataServletFilterTest.java @@ -43,9 +43,8 @@ import static org.springframework.boot.test.context.SpringBootTest.WebEnvironmen * @author Haotian Zhang */ @RunWith(SpringRunner.class) -@SpringBootTest(webEnvironment = RANDOM_PORT, - classes = MetadataServletFilterTest.TestApplication.class, - properties = { "spring.config.location = classpath:application-test.yml" }) +@SpringBootTest(webEnvironment = RANDOM_PORT, classes = MetadataServletFilterTest.TestApplication.class, properties = { + "spring.config.location = classpath:application-test.yml" }) public class MetadataServletFilterTest { @Autowired diff --git a/spring-cloud-tencent-dependencies/pom.xml b/spring-cloud-tencent-dependencies/pom.xml index b7af2ba3b..d8a30e6eb 100644 --- a/spring-cloud-tencent-dependencies/pom.xml +++ b/spring-cloud-tencent-dependencies/pom.xml @@ -1,93 +1,93 @@ - - org.springframework.cloud - spring-cloud-dependencies-parent - 2.3.1.RELEASE - - - 4.0.0 - - com.tencent.cloud - spring-cloud-tencent-dependencies - ${revision} - pom - Spring Cloud Tencent Dependencies - Spring Cloud Tencent Dependencies - https://github.com/Tencent/spring-cloud-tencent/tree/main - - - Tencent - https://opensource.tencent.com/ - - - - - The BSD 3-Clause License (BSD3) - https://raw.githubusercontent.com/Tencent/spring-cloud-tencent/main/LICENSE - repo - - - - - https://github.com/Tencent/spring-cloud-tencent - scm:git:git@github.com:Tencent/spring-cloud-tencent.git - scm:git:git@github.com:Tencent/spring-cloud-tencent.git - - - - - SkyeBeFreeman - Haotian Zhang - 928016560@qq.com - Tencent - https://github.com/SkyeBeFreeman/ - - - - Andrew Shan - samshan08@126.com - Tencent - - - - xiaoyao1999hn - Jie Cheng - 348893717@qq.com - Tencent - https://github.com/xiaoyao1999hn/ - - - - - 1.2.0-Hoxton.SR9-SNAPSHOT - 1.3.1 - 2.0.0 - - - 3.2.0 - 3.1.1 - 1.2.7 - 1.6 - - - - - - polaris-dependencies - com.tencent.polaris - ${polaris.version} - pom - import - - - - com.tencent.cloud - spring-cloud-tencent-commons - ${revision} - + xmlns="http://maven.apache.org/POM/4.0.0" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + + org.springframework.cloud + spring-cloud-dependencies-parent + 2.1.11.RELEASE + + + 4.0.0 + + com.tencent.cloud + spring-cloud-tencent-dependencies + ${revision} + pom + Spring Cloud Tencent Dependencies + Spring Cloud Tencent Dependencies + https://github.com/Tencent/spring-cloud-tencent/tree/main + + + Tencent + https://opensource.tencent.com/ + + + + + The BSD 3-Clause License (BSD3) + https://raw.githubusercontent.com/Tencent/spring-cloud-tencent/main/LICENSE + repo + + + + + https://github.com/Tencent/spring-cloud-tencent + scm:git:git@github.com:Tencent/spring-cloud-tencent.git + scm:git:git@github.com:Tencent/spring-cloud-tencent.git + + + + + SkyeBeFreeman + Haotian Zhang + 928016560@qq.com + Tencent + https://github.com/SkyeBeFreeman/ + + + + Andrew Shan + samshan08@126.com + Tencent + + + + xiaoyao1999hn + Jie Cheng + 348893717@qq.com + Tencent + https://github.com/xiaoyao1999hn/ + + + + + 1.2.0-Greenwich-SNAPSHOT + 1.3.1 + 2.0.0 + + + 3.2.0 + 3.1.1 + 1.2.7 + 1.6 + + + + + + polaris-dependencies + com.tencent.polaris + ${polaris.version} + pom + import + + + + com.tencent.cloud + spring-cloud-tencent-commons + ${revision} + com.tencent.cloud @@ -101,24 +101,24 @@ ${revision} - - - com.tencent.cloud - spring-cloud-starter-tencent-polaris-ratelimit - ${revision} - - - - com.tencent.cloud - spring-cloud-starter-tencent-polaris-circuitbreaker - ${revision} - - - - com.tencent.cloud - spring-cloud-starter-tencent-polaris-router - ${revision} - + + + com.tencent.cloud + spring-cloud-starter-tencent-polaris-ratelimit + ${revision} + + + + com.tencent.cloud + spring-cloud-starter-tencent-polaris-circuitbreaker + ${revision} + + + + com.tencent.cloud + spring-cloud-starter-tencent-polaris-router + ${revision} + com.tencent.cloud @@ -126,116 +126,116 @@ ${revision} - - com.tencent.cloud - spring-cloud-starter-tencent-polaris-discovery - ${revision} - - - - - org.powermock - powermock-module-junit4 - ${powermock.version} - - - - - org.powermock - powermock-api-mockito2 - ${powermock.version} - - - - - - - - org.codehaus.mojo - flatten-maven-plugin - ${flatten-maven-plugin.version} - - true - resolveCiFriendliesOnly - - - - flatten - process-resources - - flatten - - - - flatten.clean - clean - - clean - - - - - - - - - - release - - - - org.apache.maven.plugins - maven-javadoc-plugin - - - attach-javadocs - - jar - - - - - - - org.apache.maven.plugins - maven-source-plugin - ${maven-source-plugin.version} - - - package - - jar-no-fork - - - - - - - org.apache.maven.plugins - maven-gpg-plugin - ${maven-gpg-plugin.version} - - - verify - - sign - - - - - - - - - - nexus-snapshots - https://oss.sonatype.org/content/repositories/snapshots/ - - - nexus-releases - https://oss.sonatype.org/service/local/staging/deploy/maven2/ - - - - + + com.tencent.cloud + spring-cloud-starter-tencent-polaris-discovery + ${revision} + + + + + org.powermock + powermock-module-junit4 + ${powermock.version} + + + + + org.powermock + powermock-api-mockito2 + ${powermock.version} + + + + + + + + org.codehaus.mojo + flatten-maven-plugin + ${flatten-maven-plugin.version} + + true + resolveCiFriendliesOnly + + + + flatten + process-resources + + flatten + + + + flatten.clean + clean + + clean + + + + + + + + + + release + + + + org.apache.maven.plugins + maven-javadoc-plugin + + + attach-javadocs + + jar + + + + + + + org.apache.maven.plugins + maven-source-plugin + ${maven-source-plugin.version} + + + package + + jar-no-fork + + + + + + + org.apache.maven.plugins + maven-gpg-plugin + ${maven-gpg-plugin.version} + + + verify + + sign + + + + + + + + + + nexus-snapshots + https://oss.sonatype.org/content/repositories/snapshots/ + + + nexus-releases + https://oss.sonatype.org/service/local/staging/deploy/maven2/ + + + + diff --git a/spring-cloud-tencent-examples/polaris-circuitbreaker-example/polaris-circuitbreaker-example-a/src/main/java/com/tencent/cloud/polaris/circuitbreaker/example/ProviderB.java b/spring-cloud-tencent-examples/polaris-circuitbreaker-example/polaris-circuitbreaker-example-a/src/main/java/com/tencent/cloud/polaris/circuitbreaker/example/ProviderB.java index a4f96e0bb..ea26ace79 100644 --- a/spring-cloud-tencent-examples/polaris-circuitbreaker-example/polaris-circuitbreaker-example-a/src/main/java/com/tencent/cloud/polaris/circuitbreaker/example/ProviderB.java +++ b/spring-cloud-tencent-examples/polaris-circuitbreaker-example/polaris-circuitbreaker-example-a/src/main/java/com/tencent/cloud/polaris/circuitbreaker/example/ProviderB.java @@ -25,8 +25,7 @@ import org.springframework.web.bind.annotation.GetMapping; * * @author Haotian Zhang */ -@FeignClient(name = "polaris-circuitbreaker-example-b", - fallback = ProviderBFallback.class) +@FeignClient(name = "polaris-circuitbreaker-example-b", fallback = ProviderBFallback.class) public interface ProviderB { /** diff --git a/spring-cloud-tencent-examples/polaris-discovery-example/discovery-caller-service/src/main/java/com/tencent/cloud/polaris/discovery/service/caller/DiscoveryCalleeService.java b/spring-cloud-tencent-examples/polaris-discovery-example/discovery-caller-service/src/main/java/com/tencent/cloud/polaris/discovery/service/caller/DiscoveryCalleeService.java index 11b65c780..d2395e00d 100644 --- a/spring-cloud-tencent-examples/polaris-discovery-example/discovery-caller-service/src/main/java/com/tencent/cloud/polaris/discovery/service/caller/DiscoveryCalleeService.java +++ b/spring-cloud-tencent-examples/polaris-discovery-example/discovery-caller-service/src/main/java/com/tencent/cloud/polaris/discovery/service/caller/DiscoveryCalleeService.java @@ -26,8 +26,7 @@ import org.springframework.web.bind.annotation.RequestParam; * * @author Haotian Zhang */ -@FeignClient(value = "DiscoveryCalleeService", - fallback = DiscoveryCalleeServiceFallback.class) +@FeignClient(value = "DiscoveryCalleeService", fallback = DiscoveryCalleeServiceFallback.class) public interface DiscoveryCalleeService { /** diff --git a/spring-cloud-tencent-polaris-context/pom.xml b/spring-cloud-tencent-polaris-context/pom.xml index a11dc5aec..5f0845a75 100644 --- a/spring-cloud-tencent-polaris-context/pom.xml +++ b/spring-cloud-tencent-polaris-context/pom.xml @@ -18,86 +18,86 @@ com.tencent.cloud spring-cloud-tencent-commons - - - - - - com.tencent.polaris - polaris-client - - - - com.tencent.polaris - polaris-plugin-api - - - - com.tencent.polaris - connector-polaris-grpc - - - - com.tencent.polaris - connector-consul - - - - com.tencent.polaris - connector-composite - - - - com.tencent.polaris - registry-memory - - - - com.tencent.polaris - flow-cache-expired - - - - com.tencent.polaris - router-isolated - - - - com.tencent.polaris - router-healthy - - - - com.tencent.polaris - router-rule - - - - com.tencent.polaris - router-nearby - - - - com.tencent.polaris - router-metadata - - - - com.tencent.polaris - loadbalancer-random - - - - com.tencent.polaris - loadbalancer-ringhash - - - - - org.springframework.boot - spring-boot-starter-test - test - - + + + + + + com.tencent.polaris + polaris-client + + + + com.tencent.polaris + polaris-plugin-api + + + + com.tencent.polaris + connector-polaris-grpc + + + + com.tencent.polaris + connector-consul + + + + com.tencent.polaris + connector-composite + + + + com.tencent.polaris + registry-memory + + + + com.tencent.polaris + flow-cache-expired + + + + com.tencent.polaris + router-isolated + + + + com.tencent.polaris + router-healthy + + + + com.tencent.polaris + router-rule + + + + com.tencent.polaris + router-nearby + + + + com.tencent.polaris + router-metadata + + + + com.tencent.polaris + loadbalancer-random + + + + com.tencent.polaris + loadbalancer-ringhash + + + + + org.springframework.boot + spring-boot-starter-test + test + + diff --git a/spring-cloud-tencent-polaris-context/src/main/java/com/tencent/cloud/polaris/context/PolarisContextProperties.java b/spring-cloud-tencent-polaris-context/src/main/java/com/tencent/cloud/polaris/context/PolarisContextProperties.java index 9bc28682a..4554fc31c 100644 --- a/spring-cloud-tencent-polaris-context/src/main/java/com/tencent/cloud/polaris/context/PolarisContextProperties.java +++ b/spring-cloud-tencent-polaris-context/src/main/java/com/tencent/cloud/polaris/context/PolarisContextProperties.java @@ -30,6 +30,7 @@ import com.tencent.polaris.factory.config.ConfigurationImpl; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.core.env.Environment; import org.springframework.util.CollectionUtils; @@ -50,6 +51,7 @@ public class PolarisContextProperties { /** * current server local ip address. */ + @Value("${spring.cloud.polaris.local-ip-address:}") private String localIpAddress; /** diff --git a/spring-cloud-tencent-polaris-context/src/test/java/com/tencent/cloud/polaris/context/PolarisContextGetHostTest.java b/spring-cloud-tencent-polaris-context/src/test/java/com/tencent/cloud/polaris/context/PolarisContextGetHostTest.java index be28008e0..3a60549f5 100644 --- a/spring-cloud-tencent-polaris-context/src/test/java/com/tencent/cloud/polaris/context/PolarisContextGetHostTest.java +++ b/spring-cloud-tencent-polaris-context/src/test/java/com/tencent/cloud/polaris/context/PolarisContextGetHostTest.java @@ -18,9 +18,9 @@ package com.tencent.cloud.polaris.context; import com.tencent.polaris.client.api.SDKContext; +import org.apache.commons.lang.StringUtils; import org.junit.Assert; import org.junit.Test; -import org.junit.platform.commons.util.StringUtils; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; @@ -29,8 +29,8 @@ import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; @RunWith(SpringRunner.class) -@SpringBootTest(classes = PolarisContextApplication.class, - properties = { "spring.config.location = classpath:bootstrap.yml" }) +@SpringBootTest(classes = PolarisContextApplication.class, properties = { + "spring.config.location = classpath:bootstrap.yml" }) @ImportAutoConfiguration({ PolarisContextConfiguration.class }) public class PolarisContextGetHostTest {