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 efba570c8..79f13977f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -5,7 +5,7 @@
org.springframework.cloud
spring-cloud-build
- 2.3.4.RELEASE
+ 2.1.11.RELEASE
4.0.0
@@ -74,7 +74,7 @@
1.1.4.Hoxton.SR9-SNAPSHOT
- Hoxton.SR9
+ Greenwich.SR5
0.8.3
diff --git a/spring-cloud-tencent-dependencies/pom.xml b/spring-cloud-tencent-dependencies/pom.xml
index 7922fa66d..c84cb376c 100644
--- a/spring-cloud-tencent-dependencies/pom.xml
+++ b/spring-cloud-tencent-dependencies/pom.xml
@@ -59,6 +59,13 @@
Tencent
https://github.com/xiaoyao1999hn/
+
+
+ chuntaojun
+ liaochuntao@live.com
+ Tencent
+ https://github.com/chuntaojun/
+
@@ -66,6 +73,7 @@
1.2.0
10.0.0-M6
2.0.0
+ 23.0
3.2.0
@@ -90,13 +98,18 @@
${tomcat.version}
+
+ com.google.guava
+ guava
+ ${guava.version}
+
+
com.tencent.cloud
spring-cloud-tencent-commons
${revision}
-
com.tencent.cloud
spring-cloud-starter-tencent-polaris-ratelimit
diff --git a/spring-cloud-tencent-examples/polaris-discovery-example/discovery-caller-service/src/main/resources/bootstrap.yml b/spring-cloud-tencent-examples/polaris-discovery-example/discovery-caller-service/src/main/resources/bootstrap.yml
index 43930793e..38b9ed1d8 100644
--- a/spring-cloud-tencent-examples/polaris-discovery-example/discovery-caller-service/src/main/resources/bootstrap.yml
+++ b/spring-cloud-tencent-examples/polaris-discovery-example/discovery-caller-service/src/main/resources/bootstrap.yml
@@ -6,21 +6,6 @@ spring:
name: DiscoveryCallerService
cloud:
polaris:
- address: grpc://127.0.0.1:8091
- consul:
- port: 8500
- host: 127.0.0.1
- enabled: true
discovery:
- register: true
- health-check-path: /actuator/health
- health-check-interval: 10s
- instance-id: ${spring.application.name}:${server.port}
- enabled: true
- service-name: ${spring.application.name}
- ip-address: localhost
- prefer-ip-address: true
-eureka:
- client:
- serviceUrl:
- defaultZone: http://127.0.0.1:7654/eureka/
+ namespace: default
+ address: grpc://192.168.31.15:8091
diff --git a/spring-cloud-tencent-starters/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/discovery/PolarisDiscoveryAutoConfiguration.java b/spring-cloud-tencent-starters/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/discovery/PolarisDiscoveryAutoConfiguration.java
index 38d0cb10d..1f14b94ab 100644
--- a/spring-cloud-tencent-starters/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/discovery/PolarisDiscoveryAutoConfiguration.java
+++ b/spring-cloud-tencent-starters/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/discovery/PolarisDiscoveryAutoConfiguration.java
@@ -18,7 +18,7 @@
package com.tencent.cloud.polaris.discovery;
import com.tencent.cloud.polaris.PolarisProperties;
-import com.tencent.cloud.polaris.discovery.reactive.PolarisReactiveDiscoveryClientConfiguration;
+import com.tencent.cloud.polaris.context.PolarisContextConfiguration;
import com.tencent.polaris.api.core.ConsumerAPI;
import com.tencent.polaris.api.core.ProviderAPI;
import com.tencent.polaris.api.exception.PolarisException;
@@ -34,9 +34,9 @@ import org.springframework.context.annotation.Import;
*
* @author Haotian Zhang, Andrew Shan, Jie Cheng
*/
-@Configuration(proxyBeanMethods = false)
+@Configuration()
@ConditionalOnPolarisDiscoveryEnabled
-@Import({PolarisDiscoveryClientConfiguration.class, PolarisReactiveDiscoveryClientConfiguration.class})
+@Import({PolarisDiscoveryClientConfiguration.class})
public class PolarisDiscoveryAutoConfiguration {
@Bean
diff --git a/spring-cloud-tencent-starters/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/discovery/PolarisDiscoveryClientConfiguration.java b/spring-cloud-tencent-starters/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/discovery/PolarisDiscoveryClientConfiguration.java
index a788d2b59..c787e8b56 100644
--- a/spring-cloud-tencent-starters/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/discovery/PolarisDiscoveryClientConfiguration.java
+++ b/spring-cloud-tencent-starters/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-tencent-starters/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/discovery/reactive/PolarisReactiveDiscoveryClient.java b/spring-cloud-tencent-starters/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/discovery/reactive/PolarisReactiveDiscoveryClient.java
deleted file mode 100644
index b316f5d86..000000000
--- a/spring-cloud-tencent-starters/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/discovery/reactive/PolarisReactiveDiscoveryClient.java
+++ /dev/null
@@ -1,84 +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.polaris.api.exception.PolarisException;
-import com.tencent.cloud.polaris.discovery.PolarisServiceDiscovery;
-import java.util.function.Function;
-import org.reactivestreams.Publisher;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.cloud.client.ServiceInstance;
-import org.springframework.cloud.client.discovery.ReactiveDiscoveryClient;
-import reactor.core.publisher.Flux;
-import reactor.core.publisher.Mono;
-import reactor.core.scheduler.Schedulers;
-
-/**
- * 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-tencent-starters/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/discovery/reactive/PolarisReactiveDiscoveryClientConfiguration.java b/spring-cloud-tencent-starters/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/discovery/reactive/PolarisReactiveDiscoveryClientConfiguration.java
deleted file mode 100644
index 77a62343c..000000000
--- a/spring-cloud-tencent-starters/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/discovery/reactive/PolarisReactiveDiscoveryClientConfiguration.java
+++ /dev/null
@@ -1,50 +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-tencent-starters/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/PolarisServiceRegistryAutoConfiguration.java b/spring-cloud-tencent-starters/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/PolarisServiceRegistryAutoConfiguration.java
index 85816e618..7957e85f9 100644
--- a/spring-cloud-tencent-starters/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/PolarisServiceRegistryAutoConfiguration.java
+++ b/spring-cloud-tencent-starters/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/PolarisServiceRegistryAutoConfiguration.java
@@ -36,7 +36,7 @@ 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)
diff --git a/spring-cloud-tencent-starters/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/ribbon/PolarisDiscoveryRibbonAutoConfiguration.java b/spring-cloud-tencent-starters/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/ribbon/PolarisDiscoveryRibbonAutoConfiguration.java
index 869c73281..dc04ffb83 100644
--- a/spring-cloud-tencent-starters/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/ribbon/PolarisDiscoveryRibbonAutoConfiguration.java
+++ b/spring-cloud-tencent-starters/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/ribbon/PolarisDiscoveryRibbonAutoConfiguration.java
@@ -27,7 +27,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-tencent-starters/spring-cloud-starter-tencent-polaris-discovery/src/test/java/com/tencent/cloud/polaris/discovery/reactive/PolarisReactiveDiscoveryClientConfigurationTest.java b/spring-cloud-tencent-starters/spring-cloud-starter-tencent-polaris-discovery/src/test/java/com/tencent/cloud/polaris/discovery/reactive/PolarisReactiveDiscoveryClientConfigurationTest.java
deleted file mode 100644
index 330cde352..000000000
--- a/spring-cloud-tencent-starters/spring-cloud-starter-tencent-polaris-discovery/src/test/java/com/tencent/cloud/polaris/discovery/reactive/PolarisReactiveDiscoveryClientConfigurationTest.java
+++ /dev/null
@@ -1,73 +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 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;
-
-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;
-
-public class PolarisReactiveDiscoveryClientConfigurationTest {
-
- private static NamingServer namingServer;
-
- private WebApplicationContextRunner contextRunner = new WebApplicationContextRunner()
- .withConfiguration(AutoConfigurations.of(
- PolarisContextConfiguration.class,
- PolarisReactiveDiscoveryClientConfiguration.class,
- PolarisDiscoveryClientConfiguration.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-tencent-starters/spring-cloud-starter-tencent-polaris-discovery/src/test/java/com/tencent/cloud/polaris/discovery/reactive/PolarisReactiveDiscoveryClientTest.java b/spring-cloud-tencent-starters/spring-cloud-starter-tencent-polaris-discovery/src/test/java/com/tencent/cloud/polaris/discovery/reactive/PolarisReactiveDiscoveryClientTest.java
deleted file mode 100644
index aaca939f1..000000000
--- a/spring-cloud-tencent-starters/spring-cloud-starter-tencent-polaris-discovery/src/test/java/com/tencent/cloud/polaris/discovery/reactive/PolarisReactiveDiscoveryClientTest.java
+++ /dev/null
@@ -1,73 +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 static com.tencent.polaris.test.common.Consts.SERVICE_PROVIDER;
-import static java.util.Collections.singletonList;
-import static org.mockito.Mockito.when;
-
-import com.tencent.polaris.api.exception.PolarisException;
-import com.tencent.cloud.polaris.discovery.PolarisServiceDiscovery;
-
-import java.util.Arrays;
-
-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 org.springframework.cloud.client.ServiceInstance;
-import reactor.core.publisher.Flux;
-import reactor.test.StepVerifier;
-
-@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-tencent-starters/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/config/PolarisRibbonAutoConfiguration.java b/spring-cloud-tencent-starters/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/config/PolarisRibbonAutoConfiguration.java
index 8d33972ae..a172e25f1 100644
--- a/spring-cloud-tencent-starters/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/config/PolarisRibbonAutoConfiguration.java
+++ b/spring-cloud-tencent-starters/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/config/PolarisRibbonAutoConfiguration.java
@@ -35,7 +35,7 @@ import org.springframework.context.annotation.Configuration;
*
* @author Haotian Zhang
*/
-@Configuration(proxyBeanMethods = false)
+@Configuration()
@EnableConfigurationProperties
@ConditionalOnProperty(value = "spring.cloud.polaris.loadbalancer.enabled", matchIfMissing = true)
@AutoConfigureAfter(RibbonAutoConfiguration.class)
diff --git a/spring-cloud-tencent-starters/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/polaris/pojo/PolarisServer.java b/spring-cloud-tencent-starters/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/polaris/pojo/PolarisServer.java
index eeb8c74b7..863d0c1b0 100644
--- a/spring-cloud-tencent-starters/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/polaris/pojo/PolarisServer.java
+++ b/spring-cloud-tencent-starters/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/polaris/pojo/PolarisServer.java
@@ -17,13 +17,13 @@
package com.tencent.cloud.polaris.pojo;
-import com.google.common.base.Objects;
import com.netflix.loadbalancer.Server;
import com.tencent.polaris.api.pojo.Instance;
import com.tencent.polaris.api.pojo.ServiceInstances;
import org.apache.commons.lang.StringUtils;
import java.util.Map;
+import java.util.Objects;
/**
* Polaris implementation of {@link Server}
@@ -95,12 +95,12 @@ public class PolarisServer extends Server {
return false;
}
PolarisServer that = (PolarisServer) o;
- return Objects.equal(instance, that.instance);
+ return Objects.equals(instance, that.instance);
}
@Override
public int hashCode() {
- return Objects.hashCode(super.hashCode(), instance);
+ return Objects.hash(super.hashCode(), instance);
}
public ServiceInstances getServiceInstances() {
diff --git a/spring-cloud-tencent-starters/spring-cloud-tencent-feign/src/main/java/com/tencent/cloud/feign/PluggableFeignContractHolder.java b/spring-cloud-tencent-starters/spring-cloud-tencent-feign/src/main/java/com/tencent/cloud/feign/PluggableFeignContractHolder.java
index 9b246d35e..b80067bdc 100644
--- a/spring-cloud-tencent-starters/spring-cloud-tencent-feign/src/main/java/com/tencent/cloud/feign/PluggableFeignContractHolder.java
+++ b/spring-cloud-tencent-starters/spring-cloud-tencent-feign/src/main/java/com/tencent/cloud/feign/PluggableFeignContractHolder.java
@@ -43,8 +43,8 @@ public class PluggableFeignContractHolder implements Contract {
}
@Override
- public List parseAndValidateMetadata(Class> targetType) {
- List metadataList = delegate.parseAndValidateMetadata(targetType);
+ public List parseAndValidatateMetadata(Class> targetType) {
+ List metadataList = delegate.parseAndValidatateMetadata(targetType);
metadataList.forEach(metadata ->
METHOD_METADATA.put(targetType.getPackage().getName() + "." + metadata.configKey(), metadata));
return metadataList;
diff --git a/spring-cloud-tencent-starters/spring-cloud-tencent-metadata/src/main/java/com/tencent/cloud/metadata/core/interceptor/feign/Metadata2HeaderFeignInterceptor.java b/spring-cloud-tencent-starters/spring-cloud-tencent-metadata/src/main/java/com/tencent/cloud/metadata/core/interceptor/feign/Metadata2HeaderFeignInterceptor.java
index 11c33ed0e..401ca0497 100644
--- a/spring-cloud-tencent-starters/spring-cloud-tencent-metadata/src/main/java/com/tencent/cloud/metadata/core/interceptor/feign/Metadata2HeaderFeignInterceptor.java
+++ b/spring-cloud-tencent-starters/spring-cloud-tencent-metadata/src/main/java/com/tencent/cloud/metadata/core/interceptor/feign/Metadata2HeaderFeignInterceptor.java
@@ -30,6 +30,9 @@ import org.springframework.util.CollectionUtils;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
import java.util.Map;
import static com.tencent.cloud.metadata.constant.MetadataConstant.HeaderName.CUSTOM_METADATA;
@@ -67,7 +70,9 @@ public class Metadata2HeaderFeignInterceptor implements RequestInterceptor, Orde
Map customMetadata = metadataContext.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-tencent-starters/spring-cloud-tencent-metadata/src/main/java/com/tencent/cloud/metadata/util/JacksonUtils.java b/spring-cloud-tencent-starters/spring-cloud-tencent-metadata/src/main/java/com/tencent/cloud/metadata/util/JacksonUtils.java
index a5b9d156b..f0cffd2f6 100644
--- a/spring-cloud-tencent-starters/spring-cloud-tencent-metadata/src/main/java/com/tencent/cloud/metadata/util/JacksonUtils.java
+++ b/spring-cloud-tencent-starters/spring-cloud-tencent-metadata/src/main/java/com/tencent/cloud/metadata/util/JacksonUtils.java
@@ -23,6 +23,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.util.StringUtils;
+import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
@@ -69,6 +70,8 @@ public class JacksonUtils {
} catch (JsonProcessingException 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);
+ } catch (IOException e) {
+ throw new RuntimeException(e);
}
}
}
diff --git a/spring-cloud-tencent-starters/spring-cloud-tencent-polaris-context/pom.xml b/spring-cloud-tencent-starters/spring-cloud-tencent-polaris-context/pom.xml
index 19bfeccde..7afe179f6 100644
--- a/spring-cloud-tencent-starters/spring-cloud-tencent-polaris-context/pom.xml
+++ b/spring-cloud-tencent-starters/spring-cloud-tencent-polaris-context/pom.xml
@@ -97,6 +97,24 @@
spring-boot-starter-test
test
+
+ org.springframework.cloud
+ spring-cloud-commons
+
+
+ org.springframework.boot
+ spring-boot
+
+
+ commons-lang
+ commons-lang
+ 2.6
+ compile
+
+
+ org.springframework.boot
+ spring-boot-autoconfigure
+
\ No newline at end of file
diff --git a/spring-cloud-tencent-starters/spring-cloud-tencent-polaris-context/src/main/java/com/tencent/cloud/polaris/context/PolarisContextProperties.java b/spring-cloud-tencent-starters/spring-cloud-tencent-polaris-context/src/main/java/com/tencent/cloud/polaris/context/PolarisContextProperties.java
index 289dcaf17..f42966182 100644
--- a/spring-cloud-tencent-starters/spring-cloud-tencent-polaris-context/src/main/java/com/tencent/cloud/polaris/context/PolarisContextProperties.java
+++ b/spring-cloud-tencent-starters/spring-cloud-tencent-polaris-context/src/main/java/com/tencent/cloud/polaris/context/PolarisContextProperties.java
@@ -26,9 +26,10 @@ import java.util.List;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.context.properties.ConfigurationProperties;
-import org.springframework.cloud.commons.util.InetUtilsProperties;
import org.springframework.core.env.Environment;
import org.springframework.util.CollectionUtils;
+import org.springframework.cloud.commons.util.InetUtils;
+
/**
* Properties for Polaris {@link com.tencent.polaris.client.api.SDKContext}
@@ -44,7 +45,7 @@ public class PolarisContextProperties {
private String address;
@Autowired
- private InetUtilsProperties inetUtilsProperties;
+ private InetUtils inetUtils;
@Autowired
private Environment environment;
@@ -76,7 +77,7 @@ public class PolarisContextProperties {
}
private String getHost() {
- String defaultIpAddress = inetUtilsProperties.getDefaultIpAddress();
+ String defaultIpAddress = inetUtils.findFirstNonLoopbackAddress().getHostAddress();
if (!StringUtils.isBlank(defaultIpAddress) && !defaultIpAddress.equals("127.0.0.1")) {
return defaultIpAddress;
}
diff --git a/spring-cloud-tencent-starters/spring-cloud-tencent-polaris-context/src/test/java/com/tencent/cloud/polaris/context/PolarisContextGetHostTest.java b/spring-cloud-tencent-starters/spring-cloud-tencent-polaris-context/src/test/java/com/tencent/cloud/polaris/context/PolarisContextGetHostTest.java
index 53e315739..b4a6d9d86 100644
--- a/spring-cloud-tencent-starters/spring-cloud-tencent-polaris-context/src/test/java/com/tencent/cloud/polaris/context/PolarisContextGetHostTest.java
+++ b/spring-cloud-tencent-starters/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;
import org.springframework.boot.test.context.SpringBootTest;