diff --git a/CHANGELOG.md b/CHANGELOG.md
index e3db3bbf8..d63962f38 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -3,3 +3,4 @@
- [docs:Add code coverage blocking.](https://github.com/Tencent/spring-cloud-tencent/pull/836)
- [docs:Add license checker GitHub Action.](https://github.com/Tencent/spring-cloud-tencent/pull/839)
+- [refactor:move loadbalancer to discovery module.](https://github.com/Tencent/spring-cloud-tencent/pull/844)
diff --git a/pom.xml b/pom.xml
index 341dbfb6e..c72800479 100644
--- a/pom.xml
+++ b/pom.xml
@@ -41,7 +41,6 @@
spring-cloud-tencent-commons
spring-cloud-tencent-polaris-context
spring-cloud-tencent-rpc-enhancement
- spring-cloud-tencent-polaris-loadbalancer
spring-cloud-starter-tencent-metadata-transfer
spring-cloud-starter-tencent-polaris-config
spring-cloud-starter-tencent-polaris-discovery
diff --git a/spring-cloud-starter-tencent-polaris-circuitbreaker/pom.xml b/spring-cloud-starter-tencent-polaris-circuitbreaker/pom.xml
index 20bf4bdf2..dce497bd1 100644
--- a/spring-cloud-starter-tencent-polaris-circuitbreaker/pom.xml
+++ b/spring-cloud-starter-tencent-polaris-circuitbreaker/pom.xml
@@ -14,11 +14,6 @@
-
- com.tencent.cloud
- spring-cloud-tencent-polaris-loadbalancer
-
-
com.tencent.cloud
spring-cloud-tencent-rpc-enhancement
diff --git a/spring-cloud-starter-tencent-polaris-discovery/pom.xml b/spring-cloud-starter-tencent-polaris-discovery/pom.xml
index a25d29874..2d52c28f1 100644
--- a/spring-cloud-starter-tencent-polaris-discovery/pom.xml
+++ b/spring-cloud-starter-tencent-polaris-discovery/pom.xml
@@ -15,10 +15,6 @@
-
- com.tencent.cloud
- spring-cloud-tencent-polaris-loadbalancer
-
com.tencent.cloud
spring-cloud-tencent-rpc-enhancement
@@ -39,12 +35,6 @@
-
- org.springframework.cloud
- spring-cloud-loadbalancer
- true
-
-
org.springframework.boot
spring-boot-starter-web
@@ -75,6 +65,12 @@
true
+
+ org.mockito
+ mockito-inline
+ test
+
+
io.projectreactor
reactor-test
diff --git a/spring-cloud-tencent-polaris-loadbalancer/src/main/java/com/tencent/cloud/polaris/loadbalancer/PolarisLoadBalancer.java b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/loadbalancer/PolarisLoadBalancer.java
similarity index 91%
rename from spring-cloud-tencent-polaris-loadbalancer/src/main/java/com/tencent/cloud/polaris/loadbalancer/PolarisLoadBalancer.java
rename to spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/loadbalancer/PolarisLoadBalancer.java
index 87475d5af..03057a4fe 100644
--- a/spring-cloud-tencent-polaris-loadbalancer/src/main/java/com/tencent/cloud/polaris/loadbalancer/PolarisLoadBalancer.java
+++ b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/loadbalancer/PolarisLoadBalancer.java
@@ -22,7 +22,6 @@ import java.util.stream.Collectors;
import com.tencent.cloud.common.metadata.MetadataContext;
import com.tencent.cloud.common.pojo.PolarisServiceInstance;
-import com.tencent.cloud.polaris.loadbalancer.config.PolarisLoadBalancerProperties;
import com.tencent.polaris.api.config.consumer.LoadBalanceConfig;
import com.tencent.polaris.api.pojo.DefaultServiceInstances;
import com.tencent.polaris.api.pojo.Instance;
@@ -57,18 +56,14 @@ public class PolarisLoadBalancer extends RoundRobinLoadBalancer {
private final String serviceId;
- private final PolarisLoadBalancerProperties loadBalancerProperties;
-
private final RouterAPI routerAPI;
private final ObjectProvider supplierObjectProvider;
- public PolarisLoadBalancer(String serviceId, ObjectProvider supplierObjectProvider,
- PolarisLoadBalancerProperties loadBalancerProperties, RouterAPI routerAPI) {
+ public PolarisLoadBalancer(String serviceId, ObjectProvider supplierObjectProvider, RouterAPI routerAPI) {
super(supplierObjectProvider, serviceId);
this.serviceId = serviceId;
this.supplierObjectProvider = supplierObjectProvider;
- this.loadBalancerProperties = loadBalancerProperties;
this.routerAPI = routerAPI;
}
@@ -82,9 +77,6 @@ public class PolarisLoadBalancer extends RoundRobinLoadBalancer {
@Override
public Mono> choose(Request request) {
- if (!loadBalancerProperties.getEnabled()) {
- return super.choose(request);
- }
ServiceInstanceListSupplier supplier = supplierObjectProvider
.getIfAvailable(NoopServiceInstanceListSupplier::new);
return supplier.get(request).next().map(this::getInstanceResponse);
diff --git a/spring-cloud-tencent-polaris-loadbalancer/src/main/java/com/tencent/cloud/polaris/loadbalancer/config/PolarisLoadBalancerAutoConfiguration.java b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/loadbalancer/PolarisLoadBalancerAutoConfiguration.java
similarity index 74%
rename from spring-cloud-tencent-polaris-loadbalancer/src/main/java/com/tencent/cloud/polaris/loadbalancer/config/PolarisLoadBalancerAutoConfiguration.java
rename to spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/loadbalancer/PolarisLoadBalancerAutoConfiguration.java
index 33654e771..38f1e0dfa 100644
--- a/spring-cloud-tencent-polaris-loadbalancer/src/main/java/com/tencent/cloud/polaris/loadbalancer/config/PolarisLoadBalancerAutoConfiguration.java
+++ b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/loadbalancer/PolarisLoadBalancerAutoConfiguration.java
@@ -15,13 +15,9 @@
* specific language governing permissions and limitations under the License.
*/
-package com.tencent.cloud.polaris.loadbalancer.config;
+package com.tencent.cloud.polaris.loadbalancer;
import com.tencent.cloud.polaris.context.ConditionalOnPolarisEnabled;
-import com.tencent.polaris.api.exception.PolarisException;
-import com.tencent.polaris.client.api.SDKContext;
-import com.tencent.polaris.factory.api.RouterAPIFactory;
-import com.tencent.polaris.router.api.core.RouterAPI;
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
@@ -29,7 +25,6 @@ import org.springframework.boot.context.properties.EnableConfigurationProperties
import org.springframework.cloud.client.ConditionalOnDiscoveryEnabled;
import org.springframework.cloud.loadbalancer.annotation.LoadBalancerClients;
import org.springframework.cloud.loadbalancer.config.LoadBalancerAutoConfiguration;
-import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
@@ -46,13 +41,4 @@ import org.springframework.context.annotation.Configuration;
@LoadBalancerClients(defaultConfiguration = PolarisLoadBalancerClientConfiguration.class)
public class PolarisLoadBalancerAutoConfiguration {
- @Bean
- public PolarisLoadBalancerProperties polarisLoadBalancerProperties() {
- return new PolarisLoadBalancerProperties();
- }
-
- @Bean
- public RouterAPI polarisRouter(SDKContext polarisContext) throws PolarisException {
- return RouterAPIFactory.createRouterAPIByContext(polarisContext);
- }
}
diff --git a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/loadbalancer/PolarisLoadBalancerClientConfiguration.java b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/loadbalancer/PolarisLoadBalancerClientConfiguration.java
new file mode 100644
index 000000000..64f8b8798
--- /dev/null
+++ b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/loadbalancer/PolarisLoadBalancerClientConfiguration.java
@@ -0,0 +1,55 @@
+/*
+ * 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.loadbalancer;
+
+import com.tencent.cloud.polaris.context.ConditionalOnPolarisEnabled;
+import com.tencent.polaris.router.api.core.RouterAPI;
+
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
+import org.springframework.cloud.client.ConditionalOnDiscoveryEnabled;
+import org.springframework.cloud.client.ServiceInstance;
+import org.springframework.cloud.loadbalancer.core.ReactorLoadBalancer;
+import org.springframework.cloud.loadbalancer.core.ServiceInstanceListSupplier;
+import org.springframework.cloud.loadbalancer.support.LoadBalancerClientFactory;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.core.env.Environment;
+
+/**
+ * Configuration of loadbalancer client.
+ *
+ * @author liaochuntao
+ */
+@Configuration(proxyBeanMethods = false)
+@ConditionalOnPolarisEnabled
+@ConditionalOnDiscoveryEnabled
+public class PolarisLoadBalancerClientConfiguration {
+
+ private final static String STRATEGY_WEIGHT = "polarisWeighted";
+
+ @Bean
+ @ConditionalOnMissingBean
+ @ConditionalOnProperty(value = "spring.cloud.polaris.loadbalancer.strategy", havingValue = STRATEGY_WEIGHT)
+ public ReactorLoadBalancer polarisLoadBalancer(Environment environment,
+ LoadBalancerClientFactory loadBalancerClientFactory, RouterAPI routerAPI) {
+ String name = environment.getProperty(LoadBalancerClientFactory.PROPERTY_NAME);
+ return new PolarisLoadBalancer(name,
+ loadBalancerClientFactory.getLazyProvider(name, ServiceInstanceListSupplier.class), routerAPI);
+ }
+}
diff --git a/spring-cloud-starter-tencent-polaris-discovery/src/main/resources/META-INF/additional-spring-configuration-metadata.json b/spring-cloud-starter-tencent-polaris-discovery/src/main/resources/META-INF/additional-spring-configuration-metadata.json
index 12a535855..f5c547207 100644
--- a/spring-cloud-starter-tencent-polaris-discovery/src/main/resources/META-INF/additional-spring-configuration-metadata.json
+++ b/spring-cloud-starter-tencent-polaris-discovery/src/main/resources/META-INF/additional-spring-configuration-metadata.json
@@ -66,6 +66,18 @@
"defaultValue": 60000,
"description": "Millis interval of refresh of service info list. Default: 60000."
},
+ {
+ "name": "spring.cloud.polaris.loadbalancer.enabled",
+ "type": "java.lang.Boolean",
+ "defaultValue": "true",
+ "description": "polaris loadbalancer."
+ },
+ {
+ "name": "spring.cloud.polaris.loadbalancer.strategy",
+ "type": "java.lang.String",
+ "defaultValue": "random",
+ "description": "retry,best_available,availability_filtering,round_robin,weighted_response_time,zone_avoidance,random,consistent_hash,weighted_random."
+ },
{
"name": "spring.cloud.nacos.discovery.enabled",
"type": "java.lang.Boolean",
diff --git a/spring-cloud-starter-tencent-polaris-discovery/src/main/resources/META-INF/spring.factories b/spring-cloud-starter-tencent-polaris-discovery/src/main/resources/META-INF/spring.factories
index 4412276d8..2a404639c 100644
--- a/spring-cloud-starter-tencent-polaris-discovery/src/main/resources/META-INF/spring.factories
+++ b/spring-cloud-starter-tencent-polaris-discovery/src/main/resources/META-INF/spring.factories
@@ -2,6 +2,7 @@ org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
com.tencent.cloud.polaris.DiscoveryPropertiesAutoConfiguration,\
com.tencent.cloud.polaris.discovery.PolarisDiscoveryAutoConfiguration,\
com.tencent.cloud.polaris.registry.PolarisServiceRegistryAutoConfiguration,\
- com.tencent.cloud.polaris.endpoint.PolarisDiscoveryEndpointAutoConfiguration
+ com.tencent.cloud.polaris.endpoint.PolarisDiscoveryEndpointAutoConfiguration,\
+ com.tencent.cloud.polaris.loadbalancer.PolarisLoadBalancerAutoConfiguration
org.springframework.cloud.bootstrap.BootstrapConfiguration=\
com.tencent.cloud.polaris.DiscoveryPropertiesBootstrapAutoConfiguration
diff --git a/spring-cloud-tencent-polaris-loadbalancer/src/test/java/com/tencent/cloud/polaris/loadbalancer/config/PolarisLoadBalancerAutoConfigurationTest.java b/spring-cloud-starter-tencent-polaris-discovery/src/test/java/com/tencent/cloud/polaris/loadbalancer/PolarisLoadBalancerAutoConfigurationTest.java
similarity index 94%
rename from spring-cloud-tencent-polaris-loadbalancer/src/test/java/com/tencent/cloud/polaris/loadbalancer/config/PolarisLoadBalancerAutoConfigurationTest.java
rename to spring-cloud-starter-tencent-polaris-discovery/src/test/java/com/tencent/cloud/polaris/loadbalancer/PolarisLoadBalancerAutoConfigurationTest.java
index 2e1ec86e1..93c7086fb 100644
--- a/spring-cloud-tencent-polaris-loadbalancer/src/test/java/com/tencent/cloud/polaris/loadbalancer/config/PolarisLoadBalancerAutoConfigurationTest.java
+++ b/spring-cloud-starter-tencent-polaris-discovery/src/test/java/com/tencent/cloud/polaris/loadbalancer/PolarisLoadBalancerAutoConfigurationTest.java
@@ -15,7 +15,7 @@
* specific language governing permissions and limitations under the License.
*/
-package com.tencent.cloud.polaris.loadbalancer.config;
+package com.tencent.cloud.polaris.loadbalancer;
import com.tencent.cloud.polaris.context.config.PolarisContextAutoConfiguration;
import com.tencent.polaris.router.api.core.RouterAPI;
@@ -50,7 +50,6 @@ public class PolarisLoadBalancerAutoConfigurationTest {
public void testDefaultInitialization() {
this.contextRunner.run(context -> {
assertThat(context).hasSingleBean(RouterAPI.class);
- assertThat(context).hasSingleBean(PolarisLoadBalancerProperties.class);
});
}
diff --git a/spring-cloud-tencent-polaris-loadbalancer/src/test/java/com/tencent/cloud/polaris/loadbalancer/PolarisLoadBalancerTest.java b/spring-cloud-starter-tencent-polaris-discovery/src/test/java/com/tencent/cloud/polaris/loadbalancer/PolarisLoadBalancerTest.java
similarity index 93%
rename from spring-cloud-tencent-polaris-loadbalancer/src/test/java/com/tencent/cloud/polaris/loadbalancer/PolarisLoadBalancerTest.java
rename to spring-cloud-starter-tencent-polaris-discovery/src/test/java/com/tencent/cloud/polaris/loadbalancer/PolarisLoadBalancerTest.java
index 54b2ac26a..18fc952f9 100644
--- a/spring-cloud-tencent-polaris-loadbalancer/src/test/java/com/tencent/cloud/polaris/loadbalancer/PolarisLoadBalancerTest.java
+++ b/spring-cloud-starter-tencent-polaris-discovery/src/test/java/com/tencent/cloud/polaris/loadbalancer/PolarisLoadBalancerTest.java
@@ -23,7 +23,6 @@ import java.util.List;
import com.tencent.cloud.common.pojo.PolarisServiceInstance;
import com.tencent.cloud.common.util.ApplicationContextAwareUtils;
-import com.tencent.cloud.polaris.loadbalancer.config.PolarisLoadBalancerProperties;
import com.tencent.polaris.api.pojo.Instance;
import com.tencent.polaris.router.api.core.RouterAPI;
import com.tencent.polaris.router.api.rpc.ProcessLoadBalanceResponse;
@@ -66,8 +65,6 @@ public class PolarisLoadBalancerTest {
private RouterAPI routerAPI;
@Mock
private ObjectProvider supplierObjectProvider;
- @Mock
- private PolarisLoadBalancerProperties loadBalancerProperties;
@BeforeClass
public static void beforeClass() {
@@ -95,19 +92,16 @@ public class PolarisLoadBalancerTest {
when(serviceInstanceListSupplier.get(request)).thenReturn(Flux.just(mockInstanceList));
when(supplierObjectProvider.getIfAvailable(any())).thenReturn(serviceInstanceListSupplier);
- when(loadBalancerProperties.getEnabled()).thenReturn(true);
ProcessLoadBalanceResponse mockLbRes = new ProcessLoadBalanceResponse(testInstance);
when(routerAPI.processLoadBalance(any())).thenReturn(mockLbRes);
// request construct and execute invoke
- PolarisLoadBalancer polarisLoadBalancer = new PolarisLoadBalancer(LOCAL_SERVICE, supplierObjectProvider,
- loadBalancerProperties, routerAPI);
+ PolarisLoadBalancer polarisLoadBalancer = new PolarisLoadBalancer(LOCAL_SERVICE, supplierObjectProvider, routerAPI);
Mono> responseMono = polarisLoadBalancer.choose(request);
ServiceInstance serviceInstance = responseMono.block().getServer();
// verify method has invoked
- verify(loadBalancerProperties).getEnabled();
verify(supplierObjectProvider).getIfAvailable(any());
//result assert
diff --git a/spring-cloud-tencent-polaris-loadbalancer/src/test/java/com/tencent/cloud/polaris/loadbalancer/config/PolarisRouterAutoConfigurationTest.java b/spring-cloud-starter-tencent-polaris-discovery/src/test/java/com/tencent/cloud/polaris/loadbalancer/PolarisRouterAutoConfigurationTest.java
similarity index 65%
rename from spring-cloud-tencent-polaris-loadbalancer/src/test/java/com/tencent/cloud/polaris/loadbalancer/config/PolarisRouterAutoConfigurationTest.java
rename to spring-cloud-starter-tencent-polaris-discovery/src/test/java/com/tencent/cloud/polaris/loadbalancer/PolarisRouterAutoConfigurationTest.java
index a78bdcf8b..b9e5a4a08 100644
--- a/spring-cloud-tencent-polaris-loadbalancer/src/test/java/com/tencent/cloud/polaris/loadbalancer/config/PolarisRouterAutoConfigurationTest.java
+++ b/spring-cloud-starter-tencent-polaris-discovery/src/test/java/com/tencent/cloud/polaris/loadbalancer/PolarisRouterAutoConfigurationTest.java
@@ -15,10 +15,9 @@
* specific language governing permissions and limitations under the License.
*/
-package com.tencent.cloud.polaris.loadbalancer.config;
+package com.tencent.cloud.polaris.loadbalancer;
import com.tencent.cloud.polaris.context.config.PolarisContextAutoConfiguration;
-import com.tencent.cloud.polaris.loadbalancer.PolarisServiceInstanceListSupplier;
import com.tencent.polaris.router.api.core.RouterAPI;
import org.junit.Test;
@@ -40,16 +39,14 @@ public class PolarisRouterAutoConfigurationTest {
.withConfiguration(AutoConfigurations.of(
PolarisLoadBalancerTest.class,
PolarisContextAutoConfiguration.class,
- PolarisLoadBalancerAutoConfiguration.class,
- PolarisLoadBalancerClientConfiguration.PolarisBlockingSupportConfiguration.class))
+ PolarisLoadBalancerAutoConfiguration.class))
.withPropertyValues("spring.cloud.loadbalancer.configurations=polaris");
private final ApplicationContextRunner noPolarisContextRunner = new ApplicationContextRunner()
.withConfiguration(AutoConfigurations.of(
PolarisLoadBalancerTest.class,
PolarisContextAutoConfiguration.class,
- PolarisLoadBalancerAutoConfiguration.class,
- PolarisLoadBalancerClientConfiguration.PolarisBlockingSupportConfiguration.class));
+ PolarisLoadBalancerAutoConfiguration.class));
/**
* Test for BlockingDiscovery.
@@ -58,12 +55,6 @@ public class PolarisRouterAutoConfigurationTest {
public void test1() {
this.blockingContextRunner.run(context -> {
assertThat(context).hasSingleBean(RouterAPI.class);
- assertThat(context).hasSingleBean(PolarisLoadBalancerProperties.class);
- assertThat(context)
- .doesNotHaveBean(PolarisLoadBalancerClientConfiguration.PolarisReactiveSupportConfiguration.class);
- assertThat(context)
- .hasSingleBean(PolarisLoadBalancerClientConfiguration.PolarisBlockingSupportConfiguration.class);
- assertThat(context).doesNotHaveBean(PolarisServiceInstanceListSupplier.class);
});
}
@@ -74,12 +65,6 @@ public class PolarisRouterAutoConfigurationTest {
public void test2() {
this.noPolarisContextRunner.run(context -> {
assertThat(context).hasSingleBean(RouterAPI.class);
- assertThat(context).hasSingleBean(PolarisLoadBalancerProperties.class);
- assertThat(context)
- .doesNotHaveBean(PolarisLoadBalancerClientConfiguration.PolarisReactiveSupportConfiguration.class);
- assertThat(context)
- .hasSingleBean(PolarisLoadBalancerClientConfiguration.PolarisBlockingSupportConfiguration.class);
- assertThat(context).doesNotHaveBean(PolarisServiceInstanceListSupplier.class);
});
}
diff --git a/spring-cloud-starter-tencent-polaris-router/pom.xml b/spring-cloud-starter-tencent-polaris-router/pom.xml
index 550000502..f9ceeccaf 100644
--- a/spring-cloud-starter-tencent-polaris-router/pom.xml
+++ b/spring-cloud-starter-tencent-polaris-router/pom.xml
@@ -15,10 +15,6 @@
-
- com.tencent.cloud
- spring-cloud-tencent-polaris-loadbalancer
-
com.tencent.cloud
spring-cloud-tencent-rpc-enhancement
diff --git a/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/PolarisRouterServiceInstanceListSupplier.java b/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/PolarisRouterServiceInstanceListSupplier.java
index b87b87e25..dddc69652 100644
--- a/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/PolarisRouterServiceInstanceListSupplier.java
+++ b/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/PolarisRouterServiceInstanceListSupplier.java
@@ -32,7 +32,6 @@ import com.tencent.cloud.common.metadata.MetadataContext;
import com.tencent.cloud.common.metadata.MetadataContextHolder;
import com.tencent.cloud.common.pojo.PolarisServiceInstance;
import com.tencent.cloud.common.util.JacksonUtils;
-import com.tencent.cloud.polaris.loadbalancer.LoadBalancerUtils;
import com.tencent.cloud.polaris.router.resttemplate.PolarisLoadBalancerRequest;
import com.tencent.cloud.polaris.router.spi.RouterRequestInterceptor;
import com.tencent.cloud.polaris.router.spi.RouterResponseInterceptor;
@@ -142,7 +141,7 @@ public class PolarisRouterServiceInstanceListSupplier extends DelegatingServiceI
}
Flux> doRouter(Flux> allServers, PolarisRouterContext routerContext) {
- ServiceInstances serviceInstances = LoadBalancerUtils.transferServersToServiceInstances(allServers);
+ ServiceInstances serviceInstances = RouterUtils.transferServersToServiceInstances(allServers);
List filteredInstances = new ArrayList<>();
if (serviceInstances.getInstances().size() > 0) {
diff --git a/spring-cloud-tencent-polaris-loadbalancer/src/main/java/com/tencent/cloud/polaris/loadbalancer/LoadBalancerUtils.java b/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/RouterUtils.java
similarity index 93%
rename from spring-cloud-tencent-polaris-loadbalancer/src/main/java/com/tencent/cloud/polaris/loadbalancer/LoadBalancerUtils.java
rename to spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/RouterUtils.java
index 91078a05e..650784302 100644
--- a/spring-cloud-tencent-polaris-loadbalancer/src/main/java/com/tencent/cloud/polaris/loadbalancer/LoadBalancerUtils.java
+++ b/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/RouterUtils.java
@@ -13,10 +13,9 @@
* 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.loadbalancer;
+package com.tencent.cloud.polaris.router;
import java.util.Collections;
import java.util.List;
@@ -44,12 +43,12 @@ import org.springframework.util.CollectionUtils;
*
* @author lepdou 2022-05-17
*/
-public final class LoadBalancerUtils {
- private static final Logger LOGGER = LoggerFactory.getLogger(LoadBalancerUtils.class);
+public final class RouterUtils {
+ private static final Logger LOGGER = LoggerFactory.getLogger(RouterUtils.class);
private static final int WAIT_TIME = 3;
- private LoadBalancerUtils() {
+ private RouterUtils() {
}
/**
@@ -65,7 +64,7 @@ public final class LoadBalancerUtils {
servers.subscribe(serviceInstances -> {
instancesRef.set(serviceInstances
.stream()
- .map(LoadBalancerUtils::transferServerToServiceInstance)
+ .map(RouterUtils::transferServerToServiceInstance)
.collect(Collectors.toList()));
latch.countDown();
diff --git a/spring-cloud-starter-tencent-polaris-router/src/test/java/com/tencent/cloud/polaris/router/PolarisRouterServiceInstanceListSupplierTest.java b/spring-cloud-starter-tencent-polaris-router/src/test/java/com/tencent/cloud/polaris/router/PolarisRouterServiceInstanceListSupplierTest.java
index 6f1fed719..08a576c8a 100644
--- a/spring-cloud-starter-tencent-polaris-router/src/test/java/com/tencent/cloud/polaris/router/PolarisRouterServiceInstanceListSupplierTest.java
+++ b/spring-cloud-starter-tencent-polaris-router/src/test/java/com/tencent/cloud/polaris/router/PolarisRouterServiceInstanceListSupplierTest.java
@@ -32,7 +32,6 @@ import com.tencent.cloud.common.metadata.MetadataContext;
import com.tencent.cloud.common.metadata.MetadataContextHolder;
import com.tencent.cloud.common.pojo.PolarisServiceInstance;
import com.tencent.cloud.common.util.ApplicationContextAwareUtils;
-import com.tencent.cloud.polaris.loadbalancer.config.PolarisLoadBalancerProperties;
import com.tencent.cloud.polaris.router.config.properties.PolarisMetadataRouterProperties;
import com.tencent.cloud.polaris.router.config.properties.PolarisNearByRouterProperties;
import com.tencent.cloud.polaris.router.config.properties.PolarisRuleBasedRouterProperties;
@@ -93,8 +92,6 @@ public class PolarisRouterServiceInstanceListSupplierTest {
@Mock
private ServiceInstanceListSupplier delegate;
@Mock
- private PolarisLoadBalancerProperties polarisLoadBalancerProperties;
- @Mock
private PolarisNearByRouterProperties polarisNearByRouterProperties;
@Mock
private PolarisMetadataRouterProperties polarisMetadataRouterProperties;
@@ -247,7 +244,8 @@ public class PolarisRouterServiceInstanceListSupplierTest {
// mock
try (MockedStatic mockedApplicationContextAwareUtils = Mockito.mockStatic(ApplicationContextAwareUtils.class)) {
- mockedApplicationContextAwareUtils.when(() -> ApplicationContextAwareUtils.getProperties(anyString())).thenReturn("mock-value");
+ mockedApplicationContextAwareUtils.when(() -> ApplicationContextAwareUtils.getProperties(anyString()))
+ .thenReturn("mock-value");
MetadataContextHolder.set(new MetadataContext());
headers = new HttpHeaders();
diff --git a/spring-cloud-tencent-polaris-loadbalancer/src/test/java/com/tencent/cloud/polaris/loadbalancer/LoadBalancerUtilsTest.java b/spring-cloud-starter-tencent-polaris-router/src/test/java/com/tencent/cloud/polaris/router/RouterUtilsTest.java
similarity index 91%
rename from spring-cloud-tencent-polaris-loadbalancer/src/test/java/com/tencent/cloud/polaris/loadbalancer/LoadBalancerUtilsTest.java
rename to spring-cloud-starter-tencent-polaris-router/src/test/java/com/tencent/cloud/polaris/router/RouterUtilsTest.java
index 130eec813..c9d417127 100644
--- a/spring-cloud-tencent-polaris-loadbalancer/src/test/java/com/tencent/cloud/polaris/loadbalancer/LoadBalancerUtilsTest.java
+++ b/spring-cloud-starter-tencent-polaris-router/src/test/java/com/tencent/cloud/polaris/router/RouterUtilsTest.java
@@ -13,10 +13,9 @@
* 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.loadbalancer;
+package com.tencent.cloud.polaris.router;
import java.util.ArrayList;
import java.util.List;
@@ -43,12 +42,12 @@ import org.springframework.cloud.client.ServiceInstance;
import static org.mockito.ArgumentMatchers.anyString;
/**
- * Test for ${@link LoadBalancerUtils}.
+ * Test for ${@link RouterUtils}.
*
* @author lepdou 2022-07-04
*/
@RunWith(MockitoJUnitRunner.class)
-public class LoadBalancerUtilsTest {
+public class RouterUtilsTest {
private static final String testNamespaceAndService = "testNamespaceAndService";
private static MockedStatic mockedApplicationContextAwareUtils;
@@ -73,7 +72,7 @@ public class LoadBalancerUtilsTest {
@Test
public void testTransferEmptyInstances() {
- ServiceInstances serviceInstances = LoadBalancerUtils.transferServersToServiceInstances(Flux.empty());
+ ServiceInstances serviceInstances = RouterUtils.transferServersToServiceInstances(Flux.empty());
Assert.assertNotNull(serviceInstances.getInstances());
Assert.assertEquals(0, serviceInstances.getInstances().size());
}
@@ -94,7 +93,7 @@ public class LoadBalancerUtilsTest {
instances.add(new PolarisServiceInstance(instance));
}
- ServiceInstances serviceInstances = LoadBalancerUtils.transferServersToServiceInstances(Flux.just(instances));
+ ServiceInstances serviceInstances = RouterUtils.transferServersToServiceInstances(Flux.just(instances));
Assert.assertNotNull(serviceInstances.getInstances());
Assert.assertEquals(instanceSize, serviceInstances.getInstances().size());
diff --git a/spring-cloud-starter-tencent-polaris-router/src/test/java/com/tencent/cloud/polaris/router/config/LoadBalancerConfigurationTest.java b/spring-cloud-starter-tencent-polaris-router/src/test/java/com/tencent/cloud/polaris/router/config/LoadBalancerConfigurationTest.java
index f195294ee..74c9192d6 100644
--- a/spring-cloud-starter-tencent-polaris-router/src/test/java/com/tencent/cloud/polaris/router/config/LoadBalancerConfigurationTest.java
+++ b/spring-cloud-starter-tencent-polaris-router/src/test/java/com/tencent/cloud/polaris/router/config/LoadBalancerConfigurationTest.java
@@ -20,7 +20,6 @@ package com.tencent.cloud.polaris.router.config;
import com.tencent.cloud.polaris.context.config.PolarisContextAutoConfiguration;
-import com.tencent.cloud.polaris.loadbalancer.config.PolarisLoadBalancerAutoConfiguration;
import com.tencent.cloud.polaris.router.PolarisRouterServiceInstanceListSupplier;
import com.tencent.polaris.router.api.core.RouterAPI;
import org.junit.Test;
@@ -47,7 +46,6 @@ public class LoadBalancerConfigurationTest {
@Test
public void testLoadBalancerConfiguration() {
contextRunner.withConfiguration(AutoConfigurations.of(
- PolarisLoadBalancerAutoConfiguration.class,
PolarisContextAutoConfiguration.class,
LoadBalancerConfiguration.class))
.run(context -> {
@@ -59,7 +57,6 @@ public class LoadBalancerConfigurationTest {
public void testPolarisReactiveSupportConfiguration() {
contextRunner.withConfiguration(AutoConfigurations.of(
LoadBalancerConfiguration.PolarisReactiveSupportConfiguration.class,
- PolarisLoadBalancerAutoConfiguration.class,
PolarisContextAutoConfiguration.class))
.withBean(SimpleReactiveDiscoveryProperties.class)
.withBean(SimpleReactiveDiscoveryClient.class)
@@ -74,10 +71,9 @@ public class LoadBalancerConfigurationTest {
@Test
public void testPolarisBlockingSupportConfiguration() {
contextRunner.withConfiguration(AutoConfigurations.of(
- PolarisLoadBalancerAutoConfiguration.class,
PolarisContextAutoConfiguration.class,
LoadBalancerConfiguration.PolarisBlockingSupportConfiguration.class
- ))
+ ))
.withBean(SimpleDiscoveryProperties.class)
.withBean(SimpleDiscoveryClient.class)
.run(context -> {
diff --git a/spring-cloud-tencent-coverage/pom.xml b/spring-cloud-tencent-coverage/pom.xml
index d5704deea..9f8a67c7f 100644
--- a/spring-cloud-tencent-coverage/pom.xml
+++ b/spring-cloud-tencent-coverage/pom.xml
@@ -34,11 +34,6 @@
spring-cloud-tencent-rpc-enhancement
-
- com.tencent.cloud
- spring-cloud-tencent-polaris-loadbalancer
-
-
com.tencent.cloud
spring-cloud-starter-tencent-polaris-discovery
diff --git a/spring-cloud-tencent-dependencies/pom.xml b/spring-cloud-tencent-dependencies/pom.xml
index 35a424de6..c7b234d28 100644
--- a/spring-cloud-tencent-dependencies/pom.xml
+++ b/spring-cloud-tencent-dependencies/pom.xml
@@ -117,12 +117,6 @@
${revision}
-
- com.tencent.cloud
- spring-cloud-tencent-polaris-loadbalancer
- ${revision}
-
-
com.tencent.cloud
spring-cloud-starter-tencent-metadata-transfer
diff --git a/spring-cloud-tencent-examples/polaris-circuitbreaker-example/polaris-circuitbreaker-example-a/pom.xml b/spring-cloud-tencent-examples/polaris-circuitbreaker-example/polaris-circuitbreaker-example-a/pom.xml
index 36fb6275d..6811c6230 100644
--- a/spring-cloud-tencent-examples/polaris-circuitbreaker-example/polaris-circuitbreaker-example-a/pom.xml
+++ b/spring-cloud-tencent-examples/polaris-circuitbreaker-example/polaris-circuitbreaker-example-a/pom.xml
@@ -48,11 +48,6 @@
org.springframework.cloud
spring-cloud-starter-bootstrap
-
-
- org.owasp.esapi
- esapi
-
diff --git a/spring-cloud-tencent-examples/polaris-circuitbreaker-example/polaris-circuitbreaker-example-a/src/main/java/com/tencent/cloud/polaris/circuitbreaker/example/ServiceAController.java b/spring-cloud-tencent-examples/polaris-circuitbreaker-example/polaris-circuitbreaker-example-a/src/main/java/com/tencent/cloud/polaris/circuitbreaker/example/ServiceAController.java
index 04570498c..79ba2c0ef 100644
--- a/spring-cloud-tencent-examples/polaris-circuitbreaker-example/polaris-circuitbreaker-example-a/src/main/java/com/tencent/cloud/polaris/circuitbreaker/example/ServiceAController.java
+++ b/spring-cloud-tencent-examples/polaris-circuitbreaker-example/polaris-circuitbreaker-example-a/src/main/java/com/tencent/cloud/polaris/circuitbreaker/example/ServiceAController.java
@@ -17,8 +17,6 @@
package com.tencent.cloud.polaris.circuitbreaker.example;
-import org.owasp.esapi.ESAPI;
-
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
@@ -64,12 +62,6 @@ public class ServiceAController {
ResponseEntity entity = restTemplate.getForEntity(
"http://polaris-circuitbreaker-example-b/example/service/b/info",
String.class);
- String response = entity.getBody();
- return cleanXSS(response);
- }
-
- private String cleanXSS(String str) {
- str = ESAPI.encoder().encodeForHTML(str);
- return str;
+ return entity.getBody();
}
}
diff --git a/spring-cloud-tencent-examples/polaris-circuitbreaker-example/polaris-circuitbreaker-example-a/src/main/resources/ESAPI.properties b/spring-cloud-tencent-examples/polaris-circuitbreaker-example/polaris-circuitbreaker-example-a/src/main/resources/ESAPI.properties
deleted file mode 100644
index 32df629d9..000000000
--- a/spring-cloud-tencent-examples/polaris-circuitbreaker-example/polaris-circuitbreaker-example-a/src/main/resources/ESAPI.properties
+++ /dev/null
@@ -1,14 +0,0 @@
-ESAPI.printProperties=true
-ESAPI.Encoder=org.owasp.esapi.reference.DefaultEncoder
-ESAPI.Logger=org.owasp.esapi.logging.slf4j.Slf4JLogFactory
-
-Encoder.AllowMultipleEncoding=false
-Encoder.AllowMixedEncoding=false
-Encoder.DefaultCodecList=HTMLEntityCodec,PercentCodec,JavaScriptCodec
-
-Logger.LogEncodingRequired=false
-Logger.UserInfo=false
-Logger.ClientInfo=false
-Logger.ApplicationName=ExampleApplication
-Logger.LogApplicationName=false
-Logger.LogServerIP=false
diff --git a/spring-cloud-tencent-examples/polaris-discovery-example/discovery-caller-service/pom.xml b/spring-cloud-tencent-examples/polaris-discovery-example/discovery-caller-service/pom.xml
index a61de58f6..272490945 100644
--- a/spring-cloud-tencent-examples/polaris-discovery-example/discovery-caller-service/pom.xml
+++ b/spring-cloud-tencent-examples/polaris-discovery-example/discovery-caller-service/pom.xml
@@ -41,11 +41,6 @@
-
-
- org.springframework.cloud
- spring-cloud-loadbalancer
-
diff --git a/spring-cloud-tencent-examples/polaris-gateway-example/gateway-callee-service/pom.xml b/spring-cloud-tencent-examples/polaris-gateway-example/gateway-callee-service/pom.xml
index 17c543546..cc37a455b 100644
--- a/spring-cloud-tencent-examples/polaris-gateway-example/gateway-callee-service/pom.xml
+++ b/spring-cloud-tencent-examples/polaris-gateway-example/gateway-callee-service/pom.xml
@@ -28,10 +28,5 @@
org.springframework.boot
spring-boot-starter-web
-
-
- org.owasp.esapi
- esapi
-
diff --git a/spring-cloud-tencent-examples/polaris-gateway-example/gateway-callee-service/src/main/java/com/tencent/cloud/polaris/gateway/example/callee/GatewayCalleeController.java b/spring-cloud-tencent-examples/polaris-gateway-example/gateway-callee-service/src/main/java/com/tencent/cloud/polaris/gateway/example/callee/GatewayCalleeController.java
index f0718b2ac..7736ed640 100644
--- a/spring-cloud-tencent-examples/polaris-gateway-example/gateway-callee-service/src/main/java/com/tencent/cloud/polaris/gateway/example/callee/GatewayCalleeController.java
+++ b/spring-cloud-tencent-examples/polaris-gateway-example/gateway-callee-service/src/main/java/com/tencent/cloud/polaris/gateway/example/callee/GatewayCalleeController.java
@@ -21,7 +21,6 @@ import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import com.tencent.cloud.common.constant.MetadataConstant;
-import org.owasp.esapi.ESAPI;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -68,11 +67,6 @@ public class GatewayCalleeController {
throws UnsupportedEncodingException {
LOG.info(URLDecoder.decode(metadataStr, UTF_8));
metadataStr = URLDecoder.decode(metadataStr, UTF_8);
- return cleanXSS(metadataStr);
- }
-
- private String cleanXSS(String str) {
- str = ESAPI.encoder().encodeForHTML(str);
- return str;
+ return metadataStr;
}
}
diff --git a/spring-cloud-tencent-examples/polaris-gateway-example/gateway-callee-service/src/main/resources/ESAPI.properties b/spring-cloud-tencent-examples/polaris-gateway-example/gateway-callee-service/src/main/resources/ESAPI.properties
deleted file mode 100644
index 32df629d9..000000000
--- a/spring-cloud-tencent-examples/polaris-gateway-example/gateway-callee-service/src/main/resources/ESAPI.properties
+++ /dev/null
@@ -1,14 +0,0 @@
-ESAPI.printProperties=true
-ESAPI.Encoder=org.owasp.esapi.reference.DefaultEncoder
-ESAPI.Logger=org.owasp.esapi.logging.slf4j.Slf4JLogFactory
-
-Encoder.AllowMultipleEncoding=false
-Encoder.AllowMixedEncoding=false
-Encoder.DefaultCodecList=HTMLEntityCodec,PercentCodec,JavaScriptCodec
-
-Logger.LogEncodingRequired=false
-Logger.UserInfo=false
-Logger.ClientInfo=false
-Logger.ApplicationName=ExampleApplication
-Logger.LogApplicationName=false
-Logger.LogServerIP=false
diff --git a/spring-cloud-tencent-examples/polaris-gateway-example/gateway-callee-service2/pom.xml b/spring-cloud-tencent-examples/polaris-gateway-example/gateway-callee-service2/pom.xml
index c24f5e6cf..1f0a2d1b9 100644
--- a/spring-cloud-tencent-examples/polaris-gateway-example/gateway-callee-service2/pom.xml
+++ b/spring-cloud-tencent-examples/polaris-gateway-example/gateway-callee-service2/pom.xml
@@ -1,6 +1,6 @@
-
polaris-gateway-example
@@ -23,16 +23,10 @@
com.tencent.cloud
spring-cloud-starter-tencent-metadata-transfer
-
+
org.springframework.boot
spring-boot-starter-web
-
-
- org.owasp.esapi
- esapi
-
-
diff --git a/spring-cloud-tencent-examples/polaris-gateway-example/gateway-callee-service2/src/main/java/com/tencent/cloud/polaris/gateway/example/callee/GatewayCalleeController.java b/spring-cloud-tencent-examples/polaris-gateway-example/gateway-callee-service2/src/main/java/com/tencent/cloud/polaris/gateway/example/callee/GatewayCalleeController.java
index f0718b2ac..7736ed640 100644
--- a/spring-cloud-tencent-examples/polaris-gateway-example/gateway-callee-service2/src/main/java/com/tencent/cloud/polaris/gateway/example/callee/GatewayCalleeController.java
+++ b/spring-cloud-tencent-examples/polaris-gateway-example/gateway-callee-service2/src/main/java/com/tencent/cloud/polaris/gateway/example/callee/GatewayCalleeController.java
@@ -21,7 +21,6 @@ import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import com.tencent.cloud.common.constant.MetadataConstant;
-import org.owasp.esapi.ESAPI;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -68,11 +67,6 @@ public class GatewayCalleeController {
throws UnsupportedEncodingException {
LOG.info(URLDecoder.decode(metadataStr, UTF_8));
metadataStr = URLDecoder.decode(metadataStr, UTF_8);
- return cleanXSS(metadataStr);
- }
-
- private String cleanXSS(String str) {
- str = ESAPI.encoder().encodeForHTML(str);
- return str;
+ return metadataStr;
}
}
diff --git a/spring-cloud-tencent-examples/polaris-gateway-example/gateway-callee-service2/src/main/resources/ESAPI.properties b/spring-cloud-tencent-examples/polaris-gateway-example/gateway-callee-service2/src/main/resources/ESAPI.properties
deleted file mode 100644
index 32df629d9..000000000
--- a/spring-cloud-tencent-examples/polaris-gateway-example/gateway-callee-service2/src/main/resources/ESAPI.properties
+++ /dev/null
@@ -1,14 +0,0 @@
-ESAPI.printProperties=true
-ESAPI.Encoder=org.owasp.esapi.reference.DefaultEncoder
-ESAPI.Logger=org.owasp.esapi.logging.slf4j.Slf4JLogFactory
-
-Encoder.AllowMultipleEncoding=false
-Encoder.AllowMixedEncoding=false
-Encoder.DefaultCodecList=HTMLEntityCodec,PercentCodec,JavaScriptCodec
-
-Logger.LogEncodingRequired=false
-Logger.UserInfo=false
-Logger.ClientInfo=false
-Logger.ApplicationName=ExampleApplication
-Logger.LogApplicationName=false
-Logger.LogServerIP=false
diff --git a/spring-cloud-tencent-examples/polaris-gateway-example/gateway-scg-service/pom.xml b/spring-cloud-tencent-examples/polaris-gateway-example/gateway-scg-service/pom.xml
index 69bf28210..1d9887427 100644
--- a/spring-cloud-tencent-examples/polaris-gateway-example/gateway-scg-service/pom.xml
+++ b/spring-cloud-tencent-examples/polaris-gateway-example/gateway-scg-service/pom.xml
@@ -48,10 +48,5 @@
org.springframework.cloud
spring-cloud-starter-gateway
-
-
- org.springframework.cloud
- spring-cloud-loadbalancer
-
diff --git a/spring-cloud-tencent-examples/polaris-router-example/router-callee-service1/pom.xml b/spring-cloud-tencent-examples/polaris-router-example/router-callee-service1/pom.xml
index 714907028..ee07d5401 100644
--- a/spring-cloud-tencent-examples/polaris-router-example/router-callee-service1/pom.xml
+++ b/spring-cloud-tencent-examples/polaris-router-example/router-callee-service1/pom.xml
@@ -27,11 +27,6 @@
org.springframework.cloud
spring-cloud-starter-bootstrap
-
-
- org.owasp.esapi
- esapi
-
diff --git a/spring-cloud-tencent-examples/polaris-router-example/router-callee-service1/src/main/java/com/tencent/cloud/polaris/router/example/RouterCalleeController.java b/spring-cloud-tencent-examples/polaris-router-example/router-callee-service1/src/main/java/com/tencent/cloud/polaris/router/example/RouterCalleeController.java
index 6693cf08e..ead2c1fe1 100644
--- a/spring-cloud-tencent-examples/polaris-router-example/router-callee-service1/src/main/java/com/tencent/cloud/polaris/router/example/RouterCalleeController.java
+++ b/spring-cloud-tencent-examples/polaris-router-example/router-callee-service1/src/main/java/com/tencent/cloud/polaris/router/example/RouterCalleeController.java
@@ -18,7 +18,6 @@
package com.tencent.cloud.polaris.router.example;
-import org.owasp.esapi.ESAPI;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -49,14 +48,6 @@ public class RouterCalleeController {
@PostMapping("/info")
public String info(String name, @RequestBody User user) {
LOG.info("Discovery Service Callee [{}] is called.", port);
- return String.format("Discovery Service Callee [%s] is called. user = %s", port, cleanXSS(user));
- }
-
- private User cleanXSS(User user) {
- User u = new User();
- String name = ESAPI.encoder().encodeForHTML(user.getName());
- u.setName(name);
- u.setAge(user.getAge());
- return u;
+ return String.format("Discovery Service Callee [%s] is called. user = %s", port, user);
}
}
diff --git a/spring-cloud-tencent-examples/polaris-router-example/router-callee-service1/src/main/resources/ESAPI.properties b/spring-cloud-tencent-examples/polaris-router-example/router-callee-service1/src/main/resources/ESAPI.properties
deleted file mode 100644
index 32df629d9..000000000
--- a/spring-cloud-tencent-examples/polaris-router-example/router-callee-service1/src/main/resources/ESAPI.properties
+++ /dev/null
@@ -1,14 +0,0 @@
-ESAPI.printProperties=true
-ESAPI.Encoder=org.owasp.esapi.reference.DefaultEncoder
-ESAPI.Logger=org.owasp.esapi.logging.slf4j.Slf4JLogFactory
-
-Encoder.AllowMultipleEncoding=false
-Encoder.AllowMixedEncoding=false
-Encoder.DefaultCodecList=HTMLEntityCodec,PercentCodec,JavaScriptCodec
-
-Logger.LogEncodingRequired=false
-Logger.UserInfo=false
-Logger.ClientInfo=false
-Logger.ApplicationName=ExampleApplication
-Logger.LogApplicationName=false
-Logger.LogServerIP=false
diff --git a/spring-cloud-tencent-examples/polaris-router-example/router-callee-service2/pom.xml b/spring-cloud-tencent-examples/polaris-router-example/router-callee-service2/pom.xml
index 9862d92bb..8ee075153 100644
--- a/spring-cloud-tencent-examples/polaris-router-example/router-callee-service2/pom.xml
+++ b/spring-cloud-tencent-examples/polaris-router-example/router-callee-service2/pom.xml
@@ -27,11 +27,6 @@
org.springframework.cloud
spring-cloud-starter-bootstrap
-
-
- org.owasp.esapi
- esapi
-
diff --git a/spring-cloud-tencent-examples/polaris-router-example/router-callee-service2/src/main/java/com/tencent/cloud/polaris/router/example/RouterCalleeController.java b/spring-cloud-tencent-examples/polaris-router-example/router-callee-service2/src/main/java/com/tencent/cloud/polaris/router/example/RouterCalleeController.java
index 6346cd606..075887766 100644
--- a/spring-cloud-tencent-examples/polaris-router-example/router-callee-service2/src/main/java/com/tencent/cloud/polaris/router/example/RouterCalleeController.java
+++ b/spring-cloud-tencent-examples/polaris-router-example/router-callee-service2/src/main/java/com/tencent/cloud/polaris/router/example/RouterCalleeController.java
@@ -18,7 +18,6 @@
package com.tencent.cloud.polaris.router.example;
-import org.owasp.esapi.ESAPI;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -50,14 +49,6 @@ public class RouterCalleeController {
@PostMapping("/info")
public String info(@RequestParam("name") String name, @RequestBody User user) {
LOG.info("Discovery Service Callee [{}] is called.", port);
- return String.format("Discovery Service Callee [%s] is called. user = %s", port, cleanXSS(user));
- }
-
- private User cleanXSS(User user) {
- User u = new User();
- String name = ESAPI.encoder().encodeForHTML(user.getName());
- u.setName(name);
- u.setAge(user.getAge());
- return u;
+ return String.format("Discovery Service Callee [%s] is called. user = %s", port, user);
}
}
diff --git a/spring-cloud-tencent-examples/polaris-router-example/router-callee-service2/src/main/resources/ESAPI.properties b/spring-cloud-tencent-examples/polaris-router-example/router-callee-service2/src/main/resources/ESAPI.properties
deleted file mode 100644
index 32df629d9..000000000
--- a/spring-cloud-tencent-examples/polaris-router-example/router-callee-service2/src/main/resources/ESAPI.properties
+++ /dev/null
@@ -1,14 +0,0 @@
-ESAPI.printProperties=true
-ESAPI.Encoder=org.owasp.esapi.reference.DefaultEncoder
-ESAPI.Logger=org.owasp.esapi.logging.slf4j.Slf4JLogFactory
-
-Encoder.AllowMultipleEncoding=false
-Encoder.AllowMixedEncoding=false
-Encoder.DefaultCodecList=HTMLEntityCodec,PercentCodec,JavaScriptCodec
-
-Logger.LogEncodingRequired=false
-Logger.UserInfo=false
-Logger.ClientInfo=false
-Logger.ApplicationName=ExampleApplication
-Logger.LogApplicationName=false
-Logger.LogServerIP=false
diff --git a/spring-cloud-tencent-examples/pom.xml b/spring-cloud-tencent-examples/pom.xml
index 118fbaffa..2a4eb0aec 100644
--- a/spring-cloud-tencent-examples/pom.xml
+++ b/spring-cloud-tencent-examples/pom.xml
@@ -32,15 +32,4 @@
true
-
-
-
-
- org.owasp.esapi
- esapi
- 2.5.0.0
-
-
-
-
diff --git a/spring-cloud-tencent-polaris-context/pom.xml b/spring-cloud-tencent-polaris-context/pom.xml
index e59c2a278..1c85382cd 100644
--- a/spring-cloud-tencent-polaris-context/pom.xml
+++ b/spring-cloud-tencent-polaris-context/pom.xml
@@ -89,6 +89,11 @@
flow-cache-expired
+
+ com.tencent.polaris
+ polaris-router-factory
+
+
com.tencent.polaris
loadbalancer-random
diff --git a/spring-cloud-tencent-polaris-context/src/main/java/com/tencent/cloud/polaris/context/config/PolarisContextAutoConfiguration.java b/spring-cloud-tencent-polaris-context/src/main/java/com/tencent/cloud/polaris/context/config/PolarisContextAutoConfiguration.java
index 36fa93718..6db635efe 100644
--- a/spring-cloud-tencent-polaris-context/src/main/java/com/tencent/cloud/polaris/context/config/PolarisContextAutoConfiguration.java
+++ b/spring-cloud-tencent-polaris-context/src/main/java/com/tencent/cloud/polaris/context/config/PolarisContextAutoConfiguration.java
@@ -29,6 +29,8 @@ import com.tencent.polaris.api.core.ProviderAPI;
import com.tencent.polaris.api.exception.PolarisException;
import com.tencent.polaris.client.api.SDKContext;
import com.tencent.polaris.factory.api.DiscoveryAPIFactory;
+import com.tencent.polaris.factory.api.RouterAPIFactory;
+import com.tencent.polaris.router.api.core.RouterAPI;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
@@ -66,6 +68,11 @@ public class PolarisContextAutoConfiguration {
return DiscoveryAPIFactory.createConsumerAPIByContext(polarisContext);
}
+ @Bean
+ public RouterAPI polarisRouter(SDKContext polarisContext) throws PolarisException {
+ return RouterAPIFactory.createRouterAPIByContext(polarisContext);
+ }
+
@Bean
@ConditionalOnMissingBean
public ModifyAddress polarisConfigModifier(PolarisContextProperties properties) {
diff --git a/spring-cloud-tencent-polaris-loadbalancer/pom.xml b/spring-cloud-tencent-polaris-loadbalancer/pom.xml
deleted file mode 100644
index da560c430..000000000
--- a/spring-cloud-tencent-polaris-loadbalancer/pom.xml
+++ /dev/null
@@ -1,72 +0,0 @@
-
-
-
- spring-cloud-tencent
- com.tencent.cloud
- ${revision}
- ../pom.xml
-
- 4.0.0
-
- spring-cloud-tencent-polaris-loadbalancer
- Spring Cloud Tencent Polaris LoadBalancer
-
-
-
-
- com.tencent.cloud
- spring-cloud-tencent-polaris-context
-
-
-
-
-
- com.tencent.polaris
- polaris-router-factory
-
-
-
- com.tencent.polaris
- polaris-discovery-api
-
-
-
- com.tencent.polaris
- polaris-test-common
- test
-
-
-
-
- org.springframework.cloud
- spring-cloud-loadbalancer
-
-
-
- org.springframework.boot
- spring-boot-starter-test
- test
-
-
-
- org.mockito
- mockito-inline
- test
-
-
-
- org.mockito
- mockito-core
- test
-
-
-
- net.bytebuddy
- byte-buddy
- test
-
-
-
-
diff --git a/spring-cloud-tencent-polaris-loadbalancer/src/main/java/com/tencent/cloud/polaris/loadbalancer/PolarisServiceInstanceListSupplier.java b/spring-cloud-tencent-polaris-loadbalancer/src/main/java/com/tencent/cloud/polaris/loadbalancer/PolarisServiceInstanceListSupplier.java
deleted file mode 100644
index 04227b4d9..000000000
--- a/spring-cloud-tencent-polaris-loadbalancer/src/main/java/com/tencent/cloud/polaris/loadbalancer/PolarisServiceInstanceListSupplier.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.loadbalancer;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import com.tencent.cloud.common.metadata.MetadataContext;
-import com.tencent.cloud.common.pojo.PolarisServiceInstance;
-import com.tencent.polaris.api.pojo.DefaultInstance;
-import org.apache.commons.lang.StringUtils;
-import reactor.core.publisher.Flux;
-
-import org.springframework.cloud.client.ServiceInstance;
-import org.springframework.cloud.client.loadbalancer.Request;
-import org.springframework.cloud.loadbalancer.core.DelegatingServiceInstanceListSupplier;
-import org.springframework.cloud.loadbalancer.core.ServiceInstanceListSupplier;
-import org.springframework.util.CollectionUtils;
-
-/**
- * Service instance list supplier of Polaris.
- *
- * @author Haotian Zhang
- */
-public class PolarisServiceInstanceListSupplier extends DelegatingServiceInstanceListSupplier {
-
- public PolarisServiceInstanceListSupplier(ServiceInstanceListSupplier delegate) {
- super(delegate);
- }
-
- @Override
- public Flux> get() {
- return getDelegate().get().map(this::chooseInstances);
- }
-
- @Override
- public Flux> get(Request request) {
- return super.get(request);
- }
-
- public List chooseInstances(List allServers) {
- if (CollectionUtils.isEmpty(allServers)) {
- return allServers;
- }
-
- String serviceName = allServers.get(0).getServiceId();
- if (StringUtils.isBlank(serviceName)) {
- throw new IllegalStateException(
- "PolarisRoutingLoadBalancer only Server with AppName or ServiceIdForDiscovery attribute");
- }
- List serviceInstances = new ArrayList<>(allServers.size());
- for (ServiceInstance server : allServers) {
- DefaultInstance instance = new DefaultInstance();
- instance.setNamespace(MetadataContext.LOCAL_NAMESPACE);
- instance.setService(serviceName);
- instance.setProtocol(server.getScheme());
- instance.setId(server.getInstanceId());
- instance.setHost(server.getHost());
- instance.setPort(server.getPort());
- instance.setWeight(100);
- instance.setMetadata(server.getMetadata());
- serviceInstances.add(new PolarisServiceInstance(instance));
- }
- return serviceInstances;
- }
-}
diff --git a/spring-cloud-tencent-polaris-loadbalancer/src/main/java/com/tencent/cloud/polaris/loadbalancer/config/PolarisLoadBalancerClientConfiguration.java b/spring-cloud-tencent-polaris-loadbalancer/src/main/java/com/tencent/cloud/polaris/loadbalancer/config/PolarisLoadBalancerClientConfiguration.java
deleted file mode 100644
index 3ebadf721..000000000
--- a/spring-cloud-tencent-polaris-loadbalancer/src/main/java/com/tencent/cloud/polaris/loadbalancer/config/PolarisLoadBalancerClientConfiguration.java
+++ /dev/null
@@ -1,104 +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.loadbalancer.config;
-
-import com.tencent.cloud.polaris.context.ConditionalOnPolarisEnabled;
-import com.tencent.cloud.polaris.loadbalancer.PolarisLoadBalancer;
-import com.tencent.cloud.polaris.loadbalancer.PolarisServiceInstanceListSupplier;
-import com.tencent.polaris.router.api.core.RouterAPI;
-
-import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
-import org.springframework.cloud.client.ConditionalOnBlockingDiscoveryEnabled;
-import org.springframework.cloud.client.ConditionalOnDiscoveryEnabled;
-import org.springframework.cloud.client.ConditionalOnReactiveDiscoveryEnabled;
-import org.springframework.cloud.client.ServiceInstance;
-import org.springframework.cloud.client.discovery.DiscoveryClient;
-import org.springframework.cloud.client.discovery.ReactiveDiscoveryClient;
-import org.springframework.cloud.loadbalancer.core.ReactorLoadBalancer;
-import org.springframework.cloud.loadbalancer.core.ServiceInstanceListSupplier;
-import org.springframework.cloud.loadbalancer.support.LoadBalancerClientFactory;
-import org.springframework.context.ConfigurableApplicationContext;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.core.annotation.Order;
-import org.springframework.core.env.Environment;
-
-/**
- * Configuration of loadbalancer client.
- *
- * @author liaochuntao
- */
-@Configuration(proxyBeanMethods = false)
-@ConditionalOnPolarisEnabled
-@ConditionalOnDiscoveryEnabled
-public class PolarisLoadBalancerClientConfiguration {
-
- /**
- * Order of reactive discovery service instance supplier.
- */
- private static final int REACTIVE_SERVICE_INSTANCE_SUPPLIER_ORDER = 193827465;
-
- private final static String STRATEGY_WEIGHT = "polarisWeighted";
-
- @Bean
- @ConditionalOnMissingBean
- @ConditionalOnProperty(value = "spring.cloud.polaris.loadbalancer.strategy", havingValue = STRATEGY_WEIGHT)
- public ReactorLoadBalancer polarisLoadBalancer(Environment environment,
- LoadBalancerClientFactory loadBalancerClientFactory, PolarisLoadBalancerProperties loadBalancerProperties,
- RouterAPI routerAPI) {
- String name = environment.getProperty(LoadBalancerClientFactory.PROPERTY_NAME);
- return new PolarisLoadBalancer(name,
- loadBalancerClientFactory.getLazyProvider(name, ServiceInstanceListSupplier.class),
- loadBalancerProperties, routerAPI);
- }
-
- @Configuration(proxyBeanMethods = false)
- @ConditionalOnReactiveDiscoveryEnabled
- @Order(REACTIVE_SERVICE_INSTANCE_SUPPLIER_ORDER)
- protected static class PolarisReactiveSupportConfiguration {
-
- @Bean
- @ConditionalOnMissingBean
- @ConditionalOnBean(ReactiveDiscoveryClient.class)
- @ConditionalOnProperty(value = "spring.cloud.loadbalancer.configurations", havingValue = "polaris")
- public ServiceInstanceListSupplier polarisRouterDiscoveryClientServiceInstanceListSupplier(
- ConfigurableApplicationContext context) {
- return new PolarisServiceInstanceListSupplier(
- ServiceInstanceListSupplier.builder().withDiscoveryClient().build(context));
- }
-
- }
-
- @Configuration(proxyBeanMethods = false)
- @ConditionalOnBlockingDiscoveryEnabled
- @Order(REACTIVE_SERVICE_INSTANCE_SUPPLIER_ORDER + 1)
- protected static class PolarisBlockingSupportConfiguration {
-
- @Bean
- @ConditionalOnMissingBean
- @ConditionalOnBean(DiscoveryClient.class)
- @ConditionalOnProperty(value = "spring.cloud.loadbalancer.configurations", havingValue = "polaris")
- public ServiceInstanceListSupplier polarisRouterDiscoveryClientServiceInstanceListSupplier(
- ConfigurableApplicationContext context) {
- return new PolarisServiceInstanceListSupplier(
- ServiceInstanceListSupplier.builder().withBlockingDiscoveryClient().build(context));
- }
- }
-}
diff --git a/spring-cloud-tencent-polaris-loadbalancer/src/main/java/com/tencent/cloud/polaris/loadbalancer/config/PolarisLoadBalancerProperties.java b/spring-cloud-tencent-polaris-loadbalancer/src/main/java/com/tencent/cloud/polaris/loadbalancer/config/PolarisLoadBalancerProperties.java
deleted file mode 100644
index be592ac1d..000000000
--- a/spring-cloud-tencent-polaris-loadbalancer/src/main/java/com/tencent/cloud/polaris/loadbalancer/config/PolarisLoadBalancerProperties.java
+++ /dev/null
@@ -1,76 +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.loadbalancer.config;
-
-import com.tencent.cloud.common.constant.ContextConstant;
-
-import org.springframework.boot.context.properties.ConfigurationProperties;
-
-/**
- * Properties of Polaris loadbalancer.
- *
- * @author Haotian Zhang
- */
-@ConfigurationProperties("spring.cloud.polaris.loadbalancer")
-public class PolarisLoadBalancerProperties {
-
- /**
- * If load-balance enabled.
- */
- private Boolean enabled = true;
-
- /**
- * Load balance strategy.
- */
- private String strategy;
-
- /**
- * Type of discovery server.
- */
- private String discoveryType = ContextConstant.POLARIS;
-
- public String getStrategy() {
- return strategy;
- }
-
- public void setStrategy(String strategy) {
- this.strategy = strategy;
- }
-
- public Boolean getEnabled() {
- return enabled;
- }
-
- public void setEnabled(Boolean enabled) {
- this.enabled = enabled;
- }
-
- public String getDiscoveryType() {
- return discoveryType;
- }
-
- public void setDiscoveryType(String discoveryType) {
- this.discoveryType = discoveryType;
- }
-
- @Override
- public String toString() {
- return "PolarisLoadBalancerProperties{" + "loadbalancerEnabled=" + enabled + ", strategy='" + strategy + '\''
- + '}';
- }
-}
diff --git a/spring-cloud-tencent-polaris-loadbalancer/src/main/resources/META-INF/additional-spring-configuration-metadata.json b/spring-cloud-tencent-polaris-loadbalancer/src/main/resources/META-INF/additional-spring-configuration-metadata.json
deleted file mode 100644
index 5ecb156bc..000000000
--- a/spring-cloud-tencent-polaris-loadbalancer/src/main/resources/META-INF/additional-spring-configuration-metadata.json
+++ /dev/null
@@ -1,22 +0,0 @@
-{
- "properties": [
- {
- "name": "spring.cloud.polaris.loadbalancer.enabled",
- "type": "java.lang.Boolean",
- "defaultValue": "true",
- "description": "polaris loadbalancer."
- },
- {
- "name": "spring.cloud.polaris.loadbalancer.discoveryType",
- "type": "java.lang.String",
- "defaultValue": "POLARIS",
- "description": "Type of discovery server."
- },
- {
- "name": "spring.cloud.polaris.loadbalancer.strategy",
- "type": "java.lang.String",
- "defaultValue": "random",
- "description": "retry,best_available,availability_filtering,round_robin,weighted_response_time,zone_avoidance,random,consistent_hash,weighted_random."
- }
- ]
-}
diff --git a/spring-cloud-tencent-polaris-loadbalancer/src/main/resources/META-INF/spring.factories b/spring-cloud-tencent-polaris-loadbalancer/src/main/resources/META-INF/spring.factories
deleted file mode 100644
index a13924bac..000000000
--- a/spring-cloud-tencent-polaris-loadbalancer/src/main/resources/META-INF/spring.factories
+++ /dev/null
@@ -1,2 +0,0 @@
-org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
- com.tencent.cloud.polaris.loadbalancer.config.PolarisLoadBalancerAutoConfiguration
diff --git a/spring-cloud-tencent-polaris-loadbalancer/src/test/java/com/tencent/cloud/polaris/loadbalancer/PolarisServiceInstanceListSupplierTest.java b/spring-cloud-tencent-polaris-loadbalancer/src/test/java/com/tencent/cloud/polaris/loadbalancer/PolarisServiceInstanceListSupplierTest.java
deleted file mode 100644
index 22062b0cf..000000000
--- a/spring-cloud-tencent-polaris-loadbalancer/src/test/java/com/tencent/cloud/polaris/loadbalancer/PolarisServiceInstanceListSupplierTest.java
+++ /dev/null
@@ -1,94 +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.loadbalancer;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import com.tencent.cloud.common.pojo.PolarisServiceInstance;
-import com.tencent.cloud.common.util.ApplicationContextAwareUtils;
-import org.assertj.core.api.Assertions;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.MockedStatic;
-import org.mockito.Mockito;
-import org.mockito.junit.MockitoJUnitRunner;
-
-import org.springframework.cloud.client.DefaultServiceInstance;
-import org.springframework.cloud.client.ServiceInstance;
-import org.springframework.cloud.loadbalancer.core.ServiceInstanceListSupplier;
-
-import static com.tencent.cloud.common.metadata.MetadataContext.LOCAL_NAMESPACE;
-import static org.mockito.ArgumentMatchers.anyString;
-
-/**
- * Test for {@link PolarisServiceInstanceListSupplier}.
- *
- * @author rod.xu
- */
-@RunWith(MockitoJUnitRunner.class)
-public class PolarisServiceInstanceListSupplierTest {
-
- @Mock
- private ServiceInstanceListSupplier serviceInstanceListSupplier;
-
- @Test
- public void chooseInstancesTest() {
- try (MockedStatic mockedApplicationContextAwareUtils = Mockito
- .mockStatic(ApplicationContextAwareUtils.class)) {
- mockedApplicationContextAwareUtils.when(() -> ApplicationContextAwareUtils.getProperties(anyString()))
- .thenReturn("test-unit");
-
- PolarisServiceInstanceListSupplier instanceListSupplier =
- new PolarisServiceInstanceListSupplier(serviceInstanceListSupplier);
-
- List allServers = new ArrayList<>();
- ServiceInstance instance1 = new DefaultServiceInstance("unit-test-instanceId-01",
- "unit-test-serviceId", "unit-test-host-01", 8090, false);
- ServiceInstance instance2 = new DefaultServiceInstance("unit-test-instanceId-02",
- "unit-test-serviceId", "unit-test-host-02", 8090, false);
-
- allServers.add(instance1);
- allServers.add(instance2);
-
- List polarisInstanceList = instanceListSupplier.chooseInstances(allServers);
-
- Assertions.assertThat(polarisInstanceList).isNotNull();
- Assertions.assertThat(polarisInstanceList.size()).isEqualTo(allServers.size());
-
- for (ServiceInstance serviceInstance : polarisInstanceList) {
- Assertions.assertThat(serviceInstance instanceof PolarisServiceInstance).isTrue();
-
- PolarisServiceInstance polarisServiceInstance = (PolarisServiceInstance) serviceInstance;
-
- Assertions.assertThat(polarisServiceInstance.isSecure()).isFalse();
- Assertions.assertThat(polarisServiceInstance.getPolarisInstance().getService())
- .isEqualTo("unit-test-serviceId");
- Assertions.assertThat(polarisServiceInstance.getPolarisInstance().getNamespace())
- .isEqualTo(LOCAL_NAMESPACE);
- Assertions.assertThat(polarisServiceInstance.getPolarisInstance().getPort()).isEqualTo(8090);
- Assertions.assertThat(polarisServiceInstance.getPolarisInstance().getId()
- .startsWith("unit-test-instanceId")).isTrue();
- Assertions.assertThat(polarisServiceInstance.getPolarisInstance().getHost()
- .startsWith("unit-test-host")).isTrue();
- }
- }
- }
-}
diff --git a/spring-cloud-tencent-rpc-enhancement/pom.xml b/spring-cloud-tencent-rpc-enhancement/pom.xml
index 2d5ff710b..16aab2780 100644
--- a/spring-cloud-tencent-rpc-enhancement/pom.xml
+++ b/spring-cloud-tencent-rpc-enhancement/pom.xml
@@ -17,7 +17,7 @@
com.tencent.cloud
- spring-cloud-tencent-polaris-loadbalancer
+ spring-cloud-tencent-polaris-context
@@ -33,6 +33,11 @@
spring-boot-starter-aop
+
+ org.springframework.cloud
+ spring-cloud-loadbalancer
+
+
org.springframework.cloud
spring-cloud-starter-openfeign