diff --git a/pom.xml b/pom.xml
index c8cd4eb03..5454486bf 100644
--- a/pom.xml
+++ b/pom.xml
@@ -91,7 +91,7 @@
1.11.0-2021.0.6-SNAPSHOT
- 5.3.26
+ 5.3.25
2.6.14
diff --git a/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/DecodeTransferMetadataReactiveFilter.java b/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/DecodeTransferMetadataReactiveFilter.java
index 8f4b832d8..03259a302 100644
--- a/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/DecodeTransferMetadataReactiveFilter.java
+++ b/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/DecodeTransferMetadataReactiveFilter.java
@@ -41,7 +41,6 @@ import org.springframework.web.server.WebFilterChain;
import static com.tencent.cloud.common.constant.ContextConstant.UTF_8;
import static com.tencent.cloud.common.constant.MetadataConstant.HeaderName.CUSTOM_DISPOSABLE_METADATA;
import static com.tencent.cloud.common.constant.MetadataConstant.HeaderName.CUSTOM_METADATA;
-import static com.tencent.cloud.common.constant.MetadataConstant.HeaderName.DEFAULT_DISPOSABLE_METADATA;
/**
* Filter used for storing the metadata from upstream temporarily when web application is
@@ -70,10 +69,10 @@ public class DecodeTransferMetadataReactiveFilter implements WebFilter, Ordered
mergedTransitiveMetadata.putAll(internalTransitiveMetadata);
mergedTransitiveMetadata.putAll(customTransitiveMetadata);
- Map internalCustomDisposableMetadata = getIntervalMetadata(serverHttpRequest, CUSTOM_DISPOSABLE_METADATA);
- Map internalDefaultDisposableMetadata = getIntervalMetadata(serverHttpRequest, DEFAULT_DISPOSABLE_METADATA);
+ Map internalDisposableMetadata = getIntervalMetadata(serverHttpRequest, CUSTOM_DISPOSABLE_METADATA);
+ Map mergedDisposableMetadata = new HashMap<>(internalDisposableMetadata);
- MetadataContextHolder.init(mergedTransitiveMetadata, internalCustomDisposableMetadata, internalDefaultDisposableMetadata);
+ MetadataContextHolder.init(mergedTransitiveMetadata, mergedDisposableMetadata);
// Save to ServerWebExchange.
serverWebExchange.getAttributes().put(
diff --git a/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/DecodeTransferMetadataServletFilter.java b/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/DecodeTransferMetadataServletFilter.java
index 6e3fe5eb5..c4e2eefa4 100644
--- a/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/DecodeTransferMetadataServletFilter.java
+++ b/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/DecodeTransferMetadataServletFilter.java
@@ -43,7 +43,6 @@ import org.springframework.web.filter.OncePerRequestFilter;
import static com.tencent.cloud.common.constant.ContextConstant.UTF_8;
import static com.tencent.cloud.common.constant.MetadataConstant.HeaderName.CUSTOM_DISPOSABLE_METADATA;
import static com.tencent.cloud.common.constant.MetadataConstant.HeaderName.CUSTOM_METADATA;
-import static com.tencent.cloud.common.constant.MetadataConstant.HeaderName.DEFAULT_DISPOSABLE_METADATA;
/**
* Filter used for storing the metadata from upstream temporarily when web application is
@@ -67,10 +66,10 @@ public class DecodeTransferMetadataServletFilter extends OncePerRequestFilter {
mergedTransitiveMetadata.putAll(internalTransitiveMetadata);
mergedTransitiveMetadata.putAll(customTransitiveMetadata);
- Map internalCustomDisposableMetadata = getInternalMetadata(httpServletRequest, CUSTOM_DISPOSABLE_METADATA);
- Map internalDefaultDisposableMetadata = getInternalMetadata(httpServletRequest, DEFAULT_DISPOSABLE_METADATA);
+ Map internalDisposableMetadata = getInternalMetadata(httpServletRequest, CUSTOM_DISPOSABLE_METADATA);
+ Map mergedDisposableMetadata = new HashMap<>(internalDisposableMetadata);
- MetadataContextHolder.init(mergedTransitiveMetadata, internalCustomDisposableMetadata, internalDefaultDisposableMetadata);
+ MetadataContextHolder.init(mergedTransitiveMetadata, mergedDisposableMetadata);
TransHeadersTransfer.transfer(httpServletRequest);
try {
diff --git a/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/EncodeTransferMedataFeignInterceptor.java b/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/EncodeTransferMedataFeignInterceptor.java
index 3de5cc06a..0cfc0f142 100644
--- a/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/EncodeTransferMedataFeignInterceptor.java
+++ b/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/EncodeTransferMedataFeignInterceptor.java
@@ -25,7 +25,6 @@ import com.tencent.cloud.common.constant.MetadataConstant;
import com.tencent.cloud.common.metadata.MetadataContext;
import com.tencent.cloud.common.metadata.MetadataContextHolder;
import com.tencent.cloud.common.util.JacksonUtils;
-import com.tencent.cloud.metadata.util.DefaultTransferMedataUtils;
import feign.RequestInterceptor;
import feign.RequestTemplate;
import org.slf4j.Logger;
@@ -38,7 +37,6 @@ import org.springframework.web.client.RestTemplate;
import static com.tencent.cloud.common.constant.ContextConstant.UTF_8;
import static com.tencent.cloud.common.constant.MetadataConstant.HeaderName.CUSTOM_DISPOSABLE_METADATA;
import static com.tencent.cloud.common.constant.MetadataConstant.HeaderName.CUSTOM_METADATA;
-import static com.tencent.cloud.common.constant.MetadataConstant.HeaderName.DEFAULT_DISPOSABLE_METADATA;
import static java.net.URLEncoder.encode;
/**
@@ -63,12 +61,7 @@ public class EncodeTransferMedataFeignInterceptor implements RequestInterceptor,
Map customMetadata = metadataContext.getCustomMetadata();
Map disposableMetadata = metadataContext.getDisposableMetadata();
Map transHeaders = metadataContext.getTransHeadersKV();
- Map defaultMetadata = DefaultTransferMedataUtils.getDefaultTransferMedata();
- // build default disposable metadata request header
- this.buildMetadataHeader(requestTemplate, defaultMetadata, DEFAULT_DISPOSABLE_METADATA);
-
- // build custom disposable metadata request header
this.buildMetadataHeader(requestTemplate, disposableMetadata, CUSTOM_DISPOSABLE_METADATA);
// process custom metadata
diff --git a/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/EncodeTransferMedataRestTemplateInterceptor.java b/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/EncodeTransferMedataRestTemplateInterceptor.java
index ebac3d1c5..2e360cdd8 100644
--- a/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/EncodeTransferMedataRestTemplateInterceptor.java
+++ b/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/EncodeTransferMedataRestTemplateInterceptor.java
@@ -27,7 +27,6 @@ import com.tencent.cloud.common.constant.MetadataConstant;
import com.tencent.cloud.common.metadata.MetadataContext;
import com.tencent.cloud.common.metadata.MetadataContextHolder;
import com.tencent.cloud.common.util.JacksonUtils;
-import com.tencent.cloud.metadata.util.DefaultTransferMedataUtils;
import org.springframework.core.Ordered;
import org.springframework.http.HttpRequest;
@@ -40,7 +39,6 @@ import org.springframework.util.CollectionUtils;
import static com.tencent.cloud.common.constant.ContextConstant.UTF_8;
import static com.tencent.cloud.common.constant.MetadataConstant.HeaderName.CUSTOM_DISPOSABLE_METADATA;
import static com.tencent.cloud.common.constant.MetadataConstant.HeaderName.CUSTOM_METADATA;
-import static com.tencent.cloud.common.constant.MetadataConstant.HeaderName.DEFAULT_DISPOSABLE_METADATA;
/**
* Interceptor used for adding the metadata in http headers from context when web client
@@ -63,10 +61,6 @@ public class EncodeTransferMedataRestTemplateInterceptor implements ClientHttpRe
Map customMetadata = metadataContext.getCustomMetadata();
Map disposableMetadata = metadataContext.getDisposableMetadata();
Map transHeaders = metadataContext.getTransHeadersKV();
- Map defaultMetadata = DefaultTransferMedataUtils.getDefaultTransferMedata();
-
- // build default disposable metadata request header
- this.buildMetadataHeader(httpRequest, defaultMetadata, DEFAULT_DISPOSABLE_METADATA);
// build custom disposable metadata request header
this.buildMetadataHeader(httpRequest, disposableMetadata, CUSTOM_DISPOSABLE_METADATA);
diff --git a/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/EncodeTransferMedataScgFilter.java b/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/EncodeTransferMedataScgFilter.java
index 43ebf925d..3224db011 100644
--- a/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/EncodeTransferMedataScgFilter.java
+++ b/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/EncodeTransferMedataScgFilter.java
@@ -26,7 +26,6 @@ import com.tencent.cloud.common.constant.MetadataConstant;
import com.tencent.cloud.common.metadata.MetadataContext;
import com.tencent.cloud.common.metadata.MetadataContextHolder;
import com.tencent.cloud.common.util.JacksonUtils;
-import com.tencent.cloud.metadata.util.DefaultTransferMedataUtils;
import reactor.core.publisher.Mono;
import org.springframework.cloud.gateway.filter.GatewayFilterChain;
@@ -39,7 +38,6 @@ import org.springframework.web.server.ServerWebExchange;
import static com.tencent.cloud.common.constant.ContextConstant.UTF_8;
import static com.tencent.cloud.common.constant.MetadataConstant.HeaderName.CUSTOM_DISPOSABLE_METADATA;
import static com.tencent.cloud.common.constant.MetadataConstant.HeaderName.CUSTOM_METADATA;
-import static com.tencent.cloud.common.constant.MetadataConstant.HeaderName.DEFAULT_DISPOSABLE_METADATA;
import static org.springframework.cloud.gateway.filter.ReactiveLoadBalancerClientFilter.LOAD_BALANCER_CLIENT_FILTER_ORDER;
/**
@@ -69,11 +67,9 @@ public class EncodeTransferMedataScgFilter implements GlobalFilter, Ordered {
Map customMetadata = metadataContext.getCustomMetadata();
Map disposableMetadata = metadataContext.getDisposableMetadata();
- Map defaultMetadata = DefaultTransferMedataUtils.getDefaultTransferMedata();
this.buildMetadataHeader(builder, customMetadata, CUSTOM_METADATA);
this.buildMetadataHeader(builder, disposableMetadata, CUSTOM_DISPOSABLE_METADATA);
- this.buildMetadataHeader(builder, defaultMetadata, DEFAULT_DISPOSABLE_METADATA);
TransHeadersTransfer.transfer(exchange.getRequest());
return chain.filter(exchange.mutate().request(builder.build()).build());
diff --git a/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/EncodeTransferMedataWebClientFilter.java b/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/EncodeTransferMedataWebClientFilter.java
index 65e7eba9c..8e64637bb 100644
--- a/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/EncodeTransferMedataWebClientFilter.java
+++ b/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/EncodeTransferMedataWebClientFilter.java
@@ -25,7 +25,6 @@ import java.util.Map;
import com.tencent.cloud.common.metadata.MetadataContext;
import com.tencent.cloud.common.metadata.MetadataContextHolder;
import com.tencent.cloud.common.util.JacksonUtils;
-import com.tencent.cloud.metadata.util.DefaultTransferMedataUtils;
import reactor.core.publisher.Mono;
import org.springframework.util.CollectionUtils;
@@ -37,7 +36,6 @@ import org.springframework.web.reactive.function.client.ExchangeFunction;
import static com.tencent.cloud.common.constant.ContextConstant.UTF_8;
import static com.tencent.cloud.common.constant.MetadataConstant.HeaderName.CUSTOM_DISPOSABLE_METADATA;
import static com.tencent.cloud.common.constant.MetadataConstant.HeaderName.CUSTOM_METADATA;
-import static com.tencent.cloud.common.constant.MetadataConstant.HeaderName.DEFAULT_DISPOSABLE_METADATA;
/**
* web client filter used for writing metadata in HTTP request header.
@@ -52,13 +50,11 @@ public class EncodeTransferMedataWebClientFilter implements ExchangeFilterFuncti
Map customMetadata = metadataContext.getCustomMetadata();
Map disposableMetadata = metadataContext.getDisposableMetadata();
Map transHeaders = metadataContext.getTransHeadersKV();
- Map defaultMetadata = DefaultTransferMedataUtils.getDefaultTransferMedata();
ClientRequest.Builder requestBuilder = ClientRequest.from(clientRequest);
this.buildMetadataHeader(requestBuilder, customMetadata, CUSTOM_METADATA);
this.buildMetadataHeader(requestBuilder, disposableMetadata, CUSTOM_DISPOSABLE_METADATA);
- this.buildMetadataHeader(requestBuilder, defaultMetadata, DEFAULT_DISPOSABLE_METADATA);
this.buildTransmittedHeader(requestBuilder, transHeaders);
ClientRequest request = requestBuilder.build();
diff --git a/spring-cloud-starter-tencent-polaris-circuitbreaker/src/test/java/com/tencent/cloud/polaris/circuitbreaker/PolarisCircuitBreakerMockServerTest.java b/spring-cloud-starter-tencent-polaris-circuitbreaker/src/test/java/com/tencent/cloud/polaris/circuitbreaker/PolarisCircuitBreakerMockServerTest.java
index 36976da74..e8315c2e7 100644
--- a/spring-cloud-starter-tencent-polaris-circuitbreaker/src/test/java/com/tencent/cloud/polaris/circuitbreaker/PolarisCircuitBreakerMockServerTest.java
+++ b/spring-cloud-starter-tencent-polaris-circuitbreaker/src/test/java/com/tencent/cloud/polaris/circuitbreaker/PolarisCircuitBreakerMockServerTest.java
@@ -121,7 +121,7 @@ public class PolarisCircuitBreakerMockServerTest {
}
}, t -> "fallback");
resList.add(res);
- Utils.sleepUninterrupted(2000);
+ Utils.sleepUninterrupted(1000);
}
assertThat(resList).isEqualTo(Arrays.asList("invoke success", "fallback", "fallback", "fallback", "fallback"));
diff --git a/spring-cloud-starter-tencent-polaris-discovery/src/test/java/com/tencent/cloud/polaris/loadbalancer/PolarisRouterAutoConfigurationTest.java b/spring-cloud-starter-tencent-polaris-discovery/src/test/java/com/tencent/cloud/polaris/loadbalancer/PolarisRouterAutoConfigurationTest.java
index 123343e72..9e9fc863d 100644
--- a/spring-cloud-starter-tencent-polaris-discovery/src/test/java/com/tencent/cloud/polaris/loadbalancer/PolarisRouterAutoConfigurationTest.java
+++ b/spring-cloud-starter-tencent-polaris-discovery/src/test/java/com/tencent/cloud/polaris/loadbalancer/PolarisRouterAutoConfigurationTest.java
@@ -40,7 +40,7 @@ public class PolarisRouterAutoConfigurationTest {
PolarisLoadBalancerTest.class,
PolarisContextAutoConfiguration.class,
PolarisLoadBalancerAutoConfiguration.class))
- .withPropertyValues("spring.cloud.loadbalancer.configurations=polaris");
+ .withPropertyValues("spring.cloud.loadbalancer.configurations=polaris", "spring.application.name=test");
private final ApplicationContextRunner noPolarisContextRunner = new ApplicationContextRunner()
.withConfiguration(AutoConfigurations.of(
diff --git a/spring-cloud-starter-tencent-polaris-discovery/src/test/java/com/tencent/cloud/polaris/util/OkHttpUtilTest.java b/spring-cloud-starter-tencent-polaris-discovery/src/test/java/com/tencent/cloud/polaris/util/OkHttpUtilTest.java
index 7590b8b1e..b718e88e9 100644
--- a/spring-cloud-starter-tencent-polaris-discovery/src/test/java/com/tencent/cloud/polaris/util/OkHttpUtilTest.java
+++ b/spring-cloud-starter-tencent-polaris-discovery/src/test/java/com/tencent/cloud/polaris/util/OkHttpUtilTest.java
@@ -37,7 +37,7 @@ import static org.assertj.core.api.Assertions.assertThat;
* @author Haotian Zhang
*/
@ExtendWith(SpringExtension.class)
-@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = OkHttpUtilTest.TestApplication.class)
+@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = OkHttpUtilTest.TestApplication.class, properties = {"spring.application.name=test", "spring.cloud.polaris.discovery.register=false"})
public class OkHttpUtilTest {
@LocalServerPort
diff --git a/spring-cloud-starter-tencent-polaris-ratelimit/src/test/java/com/tencent/cloud/polaris/ratelimit/config/PolarisRateLimitPropertiesTest.java b/spring-cloud-starter-tencent-polaris-ratelimit/src/test/java/com/tencent/cloud/polaris/ratelimit/config/PolarisRateLimitPropertiesTest.java
index e36b9d530..3b27fe84a 100644
--- a/spring-cloud-starter-tencent-polaris-ratelimit/src/test/java/com/tencent/cloud/polaris/ratelimit/config/PolarisRateLimitPropertiesTest.java
+++ b/spring-cloud-starter-tencent-polaris-ratelimit/src/test/java/com/tencent/cloud/polaris/ratelimit/config/PolarisRateLimitPropertiesTest.java
@@ -34,7 +34,7 @@ import static org.assertj.core.api.Assertions.assertThat;
* @author Haotian Zhang
*/
@ExtendWith(SpringExtension.class)
-@SpringBootTest(classes = PolarisRateLimitPropertiesTest.TestApplication.class)
+@SpringBootTest(classes = PolarisRateLimitPropertiesTest.TestApplication.class, properties = "spring.application.name=test")
@ActiveProfiles("test")
public class PolarisRateLimitPropertiesTest {
diff --git a/spring-cloud-starter-tencent-polaris-router/src/test/java/com/tencent/cloud/polaris/router/config/FeignAutoConfigurationTest.java b/spring-cloud-starter-tencent-polaris-router/src/test/java/com/tencent/cloud/polaris/router/config/FeignAutoConfigurationTest.java
index 30f37a15f..774ca3acc 100644
--- a/spring-cloud-starter-tencent-polaris-router/src/test/java/com/tencent/cloud/polaris/router/config/FeignAutoConfigurationTest.java
+++ b/spring-cloud-starter-tencent-polaris-router/src/test/java/com/tencent/cloud/polaris/router/config/FeignAutoConfigurationTest.java
@@ -19,6 +19,7 @@
package com.tencent.cloud.polaris.router.config;
import com.tencent.cloud.common.metadata.config.MetadataAutoConfiguration;
+import com.tencent.cloud.common.util.ApplicationContextAwareUtils;
import com.tencent.cloud.polaris.context.config.PolarisContextAutoConfiguration;
import com.tencent.cloud.polaris.router.feign.RouterLabelFeignInterceptor;
import org.junit.jupiter.api.Test;
@@ -39,7 +40,9 @@ public class FeignAutoConfigurationTest {
MetadataAutoConfiguration.class,
RouterAutoConfiguration.class,
PolarisContextAutoConfiguration.class,
- FeignAutoConfiguration.class));
+ FeignAutoConfiguration.class,
+ ApplicationContextAwareUtils.class
+ )).withPropertyValues("spring.application.name=test");
@Test
public void routerLabelInterceptor() {
diff --git a/spring-cloud-starter-tencent-polaris-router/src/test/java/com/tencent/cloud/polaris/router/config/RouterAutoConfigurationTests.java b/spring-cloud-starter-tencent-polaris-router/src/test/java/com/tencent/cloud/polaris/router/config/RouterAutoConfigurationTests.java
index 5416a5644..3bf557430 100644
--- a/spring-cloud-starter-tencent-polaris-router/src/test/java/com/tencent/cloud/polaris/router/config/RouterAutoConfigurationTests.java
+++ b/spring-cloud-starter-tencent-polaris-router/src/test/java/com/tencent/cloud/polaris/router/config/RouterAutoConfigurationTests.java
@@ -19,6 +19,7 @@
package com.tencent.cloud.polaris.router.config;
import com.tencent.cloud.common.metadata.config.MetadataAutoConfiguration;
+import com.tencent.cloud.common.util.ApplicationContextAwareUtils;
import com.tencent.cloud.polaris.context.config.PolarisContextAutoConfiguration;
import org.junit.jupiter.api.Test;
@@ -42,7 +43,9 @@ public class RouterAutoConfigurationTests {
MetadataAutoConfiguration.class,
RouterAutoConfiguration.class,
PolarisContextAutoConfiguration.class,
- RouterAutoConfiguration.RouterLabelRestTemplateConfig.class));
+ RouterAutoConfiguration.RouterLabelRestTemplateConfig.class,
+ ApplicationContextAwareUtils.class
+ )).withPropertyValues("spring.application.name=test");
@Test
public void testRouterLabelRestTemplateConfig() {
diff --git a/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/constant/MetadataConstant.java b/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/constant/MetadataConstant.java
index 74de66c2d..c3774baf1 100644
--- a/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/constant/MetadataConstant.java
+++ b/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/constant/MetadataConstant.java
@@ -83,11 +83,6 @@ public final class MetadataConstant {
*/
public static final String CUSTOM_DISPOSABLE_METADATA = "SCT-CUSTOM-DISPOSABLE-METADATA";
- /**
- * Default Disposable Metadata.
- */
- public static final String DEFAULT_DISPOSABLE_METADATA = "SCT-DEFAULT-DISPOSABLE-METADATA";
-
/**
* System Metadata.
*/
diff --git a/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/metadata/MetadataContextHolder.java b/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/metadata/MetadataContextHolder.java
index f53493b1a..f6307ae32 100644
--- a/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/metadata/MetadataContextHolder.java
+++ b/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/metadata/MetadataContextHolder.java
@@ -121,13 +121,13 @@ public final class MetadataContextHolder {
/**
* Save metadata map to thread local.
* @param dynamicTransitiveMetadata custom metadata collection
- * @param dynamicCustomDisposableMetadata custom disposable metadata collection
- * @param dynamicDefaultDisposableMetadata default disposable metadata collection
+ * @param dynamicDisposableMetadata custom disposable metadata connection
*/
- public static void init(Map dynamicTransitiveMetadata, Map dynamicCustomDisposableMetadata, Map dynamicDefaultDisposableMetadata) {
+ public static void init(Map dynamicTransitiveMetadata, Map dynamicDisposableMetadata) {
// Init ThreadLocal.
MetadataContextHolder.remove();
MetadataContext metadataContext = MetadataContextHolder.get();
+
// Save transitive metadata to ThreadLocal.
if (!CollectionUtils.isEmpty(dynamicTransitiveMetadata)) {
Map staticTransitiveMetadata = metadataContext.getTransitiveMetadata();
@@ -136,14 +136,8 @@ public final class MetadataContextHolder {
mergedTransitiveMetadata.putAll(dynamicTransitiveMetadata);
metadataContext.setTransitiveMetadata(Collections.unmodifiableMap(mergedTransitiveMetadata));
}
- if (!CollectionUtils.isEmpty(dynamicCustomDisposableMetadata) || !CollectionUtils.isEmpty(dynamicDefaultDisposableMetadata)) {
- Map mergedUpstreamDisposableMetadata = new HashMap<>();
- if (!CollectionUtils.isEmpty(dynamicCustomDisposableMetadata)) {
- mergedUpstreamDisposableMetadata.putAll(dynamicCustomDisposableMetadata);
- }
- if (!CollectionUtils.isEmpty(dynamicDefaultDisposableMetadata)) {
- mergedUpstreamDisposableMetadata.putAll(dynamicDefaultDisposableMetadata);
- }
+ if (!CollectionUtils.isEmpty(dynamicDisposableMetadata)) {
+ Map mergedUpstreamDisposableMetadata = new HashMap<>(dynamicDisposableMetadata);
metadataContext.setUpstreamDisposableMetadata(Collections.unmodifiableMap(mergedUpstreamDisposableMetadata));
}
Map staticDisposableMetadata = metadataContext.getDisposableMetadata();
diff --git a/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/metadata/StaticMetadataManager.java b/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/metadata/StaticMetadataManager.java
index 63ea080fb..f472b0c6f 100644
--- a/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/metadata/StaticMetadataManager.java
+++ b/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/metadata/StaticMetadataManager.java
@@ -21,7 +21,9 @@ import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.Objects;
import java.util.Set;
+import java.util.stream.Collectors;
import com.tencent.cloud.common.metadata.config.MetadataLocalProperties;
import com.tencent.cloud.common.spi.InstanceMetadataProvider;
@@ -81,14 +83,14 @@ public class StaticMetadataManager {
private String campus;
public StaticMetadataManager(MetadataLocalProperties metadataLocalProperties,
- InstanceMetadataProvider instanceMetadataProvider) {
+ List instanceMetadataProviders) {
parseConfigMetadata(metadataLocalProperties);
parseEnvMetadata();
- parseCustomMetadata(instanceMetadataProvider);
+ parseCustomMetadata(instanceMetadataProviders);
- parseLocationMetadata(metadataLocalProperties, instanceMetadataProvider);
+ parseLocationMetadata(metadataLocalProperties, instanceMetadataProviders);
merge();
@@ -182,14 +184,20 @@ public class StaticMetadataManager {
}
@SuppressWarnings("DuplicatedCode")
- private void parseCustomMetadata(InstanceMetadataProvider instanceMetadataProvider) {
- if (instanceMetadataProvider == null) {
+ private void parseCustomMetadata(List instanceMetadataProviders) {
+ if (CollectionUtils.isEmpty(instanceMetadataProviders)) {
customSPIMetadata = Collections.emptyMap();
customSPITransitiveMetadata = Collections.emptyMap();
customSPIDisposableMetadata = Collections.emptyMap();
return;
}
+ instanceMetadataProviders.forEach(this::parseCustomMetadata);
+
+ }
+
+ @SuppressWarnings("DuplicatedCode")
+ private void parseCustomMetadata(InstanceMetadataProvider instanceMetadataProvider) {
// resolve all metadata
Map allMetadata = instanceMetadataProvider.getMetadata();
if (allMetadata == null) {
@@ -247,10 +255,16 @@ public class StaticMetadataManager {
}
private void parseLocationMetadata(MetadataLocalProperties metadataLocalProperties,
- InstanceMetadataProvider instanceMetadataProvider) {
+ List instanceMetadataProviders) {
// resolve region info
- if (instanceMetadataProvider != null) {
- region = instanceMetadataProvider.getRegion();
+ if (!CollectionUtils.isEmpty(instanceMetadataProviders)) {
+ Set providerRegions = instanceMetadataProviders.stream().map(InstanceMetadataProvider::getRegion).filter(Objects::nonNull).collect(Collectors.toSet());
+ if (!CollectionUtils.isEmpty(providerRegions)) {
+ if (providerRegions.size() > 1) {
+ throw new IllegalArgumentException("Multiple Regions Provided in InstanceMetadataProviders");
+ }
+ region = providerRegions.iterator().next();
+ }
}
if (StringUtils.isBlank(region)) {
region = System.getenv(ENV_METADATA_REGION);
@@ -260,8 +274,14 @@ public class StaticMetadataManager {
}
// resolve zone info
- if (instanceMetadataProvider != null) {
- zone = instanceMetadataProvider.getZone();
+ if (!CollectionUtils.isEmpty(instanceMetadataProviders)) {
+ Set providerZones = instanceMetadataProviders.stream().map(InstanceMetadataProvider::getZone).filter(Objects::nonNull).collect(Collectors.toSet());
+ if (!CollectionUtils.isEmpty(providerZones)) {
+ if (providerZones.size() > 1) {
+ throw new IllegalArgumentException("Multiple Zones Provided in InstanceMetadataProviders");
+ }
+ zone = providerZones.iterator().next();
+ }
}
if (StringUtils.isBlank(zone)) {
zone = System.getenv(ENV_METADATA_ZONE);
@@ -271,8 +291,14 @@ public class StaticMetadataManager {
}
// resolve campus info
- if (instanceMetadataProvider != null) {
- campus = instanceMetadataProvider.getCampus();
+ if (!CollectionUtils.isEmpty(instanceMetadataProviders)) {
+ Set providerCampus = instanceMetadataProviders.stream().map(InstanceMetadataProvider::getCampus).filter(Objects::nonNull).collect(Collectors.toSet());
+ if (!CollectionUtils.isEmpty(providerCampus)) {
+ if (providerCampus.size() > 1) {
+ throw new IllegalArgumentException("Multiple Campus Provided in InstanceMetadataProviders");
+ }
+ campus = providerCampus.iterator().next();
+ }
}
if (StringUtils.isBlank(campus)) {
campus = System.getenv(ENV_METADATA_CAMPUS);
diff --git a/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/metadata/config/MetadataAutoConfiguration.java b/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/metadata/config/MetadataAutoConfiguration.java
index 060bed30d..a5a02b67b 100644
--- a/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/metadata/config/MetadataAutoConfiguration.java
+++ b/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/metadata/config/MetadataAutoConfiguration.java
@@ -18,8 +18,12 @@
package com.tencent.cloud.common.metadata.config;
+import java.util.List;
+
import com.tencent.cloud.common.metadata.StaticMetadataManager;
import com.tencent.cloud.common.spi.InstanceMetadataProvider;
+import com.tencent.cloud.common.spi.impl.DefaultInstanceMetadataProvider;
+import com.tencent.cloud.common.util.ApplicationContextAwareUtils;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@@ -42,10 +46,15 @@ public class MetadataAutoConfiguration {
return new MetadataLocalProperties();
}
+ @Bean
+ public InstanceMetadataProvider defaultInstanceMetadataProvider(ApplicationContextAwareUtils applicationContextAwareUtils) {
+ return new DefaultInstanceMetadataProvider(applicationContextAwareUtils);
+ }
+
@Bean
public StaticMetadataManager metadataManager(MetadataLocalProperties metadataLocalProperties,
- @Nullable InstanceMetadataProvider instanceMetadataProvider) {
- return new StaticMetadataManager(metadataLocalProperties, instanceMetadataProvider);
+ @Nullable List instanceMetadataProviders) {
+ return new StaticMetadataManager(metadataLocalProperties, instanceMetadataProviders);
}
}
diff --git a/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/util/DefaultTransferMedataUtils.java b/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/spi/impl/DefaultInstanceMetadataProvider.java
similarity index 57%
rename from spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/util/DefaultTransferMedataUtils.java
rename to spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/spi/impl/DefaultInstanceMetadataProvider.java
index 87d81480a..e4a99636c 100644
--- a/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/util/DefaultTransferMedataUtils.java
+++ b/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/spi/impl/DefaultInstanceMetadataProvider.java
@@ -13,13 +13,19 @@
* 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.metadata.util;
+package com.tencent.cloud.common.spi.impl;
+import java.util.Arrays;
import java.util.HashMap;
+import java.util.HashSet;
import java.util.Map;
+import java.util.Set;
+import com.tencent.cloud.common.spi.InstanceMetadataProvider;
+import com.tencent.cloud.common.util.ApplicationContextAwareUtils;
import static com.tencent.cloud.common.constant.MetadataConstant.DefaultMetadata.DEFAULT_METADATA_SOURCE_SERVICE_NAME;
import static com.tencent.cloud.common.constant.MetadataConstant.DefaultMetadata.DEFAULT_METADATA_SOURCE_SERVICE_NAMESPACE;
@@ -27,19 +33,31 @@ import static com.tencent.cloud.common.metadata.MetadataContext.LOCAL_NAMESPACE;
import static com.tencent.cloud.common.metadata.MetadataContext.LOCAL_SERVICE;
/**
- * DefaultTransferMedataUtils.
+ * DefaultInstanceMetadataProvider.
+ * provide DEFAULT_METADATA_SOURCE_SERVICE_NAMESPACE, DEFAULT_METADATA_SOURCE_SERVICE_NAME
*
- * @author seanyu 2023-02-27
+ * @author sean yu
*/
-public final class DefaultTransferMedataUtils {
+public class DefaultInstanceMetadataProvider implements InstanceMetadataProvider {
+
+ private final ApplicationContextAwareUtils applicationContextAwareUtils;
- private DefaultTransferMedataUtils() {
+ // ensure ApplicationContextAwareUtils init before
+ public DefaultInstanceMetadataProvider(ApplicationContextAwareUtils applicationContextAwareUtils) {
+ this.applicationContextAwareUtils = applicationContextAwareUtils;
}
- public static Map getDefaultTransferMedata() {
+ @Override
+ public Map getMetadata() {
return new HashMap() {{
put(DEFAULT_METADATA_SOURCE_SERVICE_NAMESPACE, LOCAL_NAMESPACE);
put(DEFAULT_METADATA_SOURCE_SERVICE_NAME, LOCAL_SERVICE);
}};
}
+
+ @Override
+ public Set getDisposableMetadataKeys() {
+ return new HashSet<>(Arrays.asList(DEFAULT_METADATA_SOURCE_SERVICE_NAMESPACE, DEFAULT_METADATA_SOURCE_SERVICE_NAME));
+ }
+
}
diff --git a/spring-cloud-tencent-commons/src/test/java/com/tencent/cloud/common/metadata/MetadataContextHolderTest.java b/spring-cloud-tencent-commons/src/test/java/com/tencent/cloud/common/metadata/MetadataContextHolderTest.java
index 2cbeb95f8..d405b52a0 100644
--- a/spring-cloud-tencent-commons/src/test/java/com/tencent/cloud/common/metadata/MetadataContextHolderTest.java
+++ b/spring-cloud-tencent-commons/src/test/java/com/tencent/cloud/common/metadata/MetadataContextHolderTest.java
@@ -58,7 +58,7 @@ public class MetadataContextHolderTest {
customMetadata.put("a", "1");
customMetadata.put("b", "22");
customMetadata.put("c", "3");
- MetadataContextHolder.init(customMetadata, new HashMap<>(), new HashMap<>());
+ MetadataContextHolder.init(customMetadata, new HashMap<>());
metadataContext = MetadataContextHolder.get();
customMetadata = metadataContext.getTransitiveMetadata();
Assertions.assertThat(customMetadata.get("a")).isEqualTo("1");
diff --git a/spring-cloud-tencent-commons/src/test/java/com/tencent/cloud/common/metadata/StaticMetadataManagerTest.java b/spring-cloud-tencent-commons/src/test/java/com/tencent/cloud/common/metadata/StaticMetadataManagerTest.java
index 2bd773e98..8dbda4cfe 100644
--- a/spring-cloud-tencent-commons/src/test/java/com/tencent/cloud/common/metadata/StaticMetadataManagerTest.java
+++ b/spring-cloud-tencent-commons/src/test/java/com/tencent/cloud/common/metadata/StaticMetadataManagerTest.java
@@ -93,7 +93,7 @@ public class StaticMetadataManagerTest {
when(metadataLocalProperties.getTransitive()).thenReturn(Collections.singletonList("k1"));
StaticMetadataManager metadataManager = new StaticMetadataManager(metadataLocalProperties,
- new MockedMetadataProvider());
+ Collections.singletonList(new MockedMetadataProvider()));
Map metadata = metadataManager.getAllCustomMetadata();
assertThat(metadata.size()).isEqualTo(3);
@@ -126,7 +126,7 @@ public class StaticMetadataManagerTest {
when(metadataLocalProperties.getTransitive()).thenReturn(Collections.singletonList("k1"));
StaticMetadataManager metadataManager = new StaticMetadataManager(metadataLocalProperties,
- new MockedMetadataProvider());
+ Collections.singletonList(new MockedMetadataProvider()));
Map metadata = metadataManager.getMergedStaticMetadata();
assertThat(metadata.size()).isEqualTo(6);
diff --git a/spring-cloud-tencent-commons/src/test/java/com/tencent/cloud/common/metadata/config/MetadataAutoConfigurationTest.java b/spring-cloud-tencent-commons/src/test/java/com/tencent/cloud/common/metadata/config/MetadataAutoConfigurationTest.java
index 83143d6d5..c5cda081c 100644
--- a/spring-cloud-tencent-commons/src/test/java/com/tencent/cloud/common/metadata/config/MetadataAutoConfigurationTest.java
+++ b/spring-cloud-tencent-commons/src/test/java/com/tencent/cloud/common/metadata/config/MetadataAutoConfigurationTest.java
@@ -18,6 +18,8 @@
package com.tencent.cloud.common.metadata.config;
+
+import com.tencent.cloud.common.util.ApplicationContextAwareUtils;
import org.assertj.core.api.Assertions;
import org.junit.jupiter.api.Test;
@@ -33,11 +35,17 @@ import org.springframework.boot.test.context.runner.WebApplicationContextRunner;
*/
public class MetadataAutoConfigurationTest {
- private final ApplicationContextRunner applicationContextRunner = new ApplicationContextRunner();
+ private final ApplicationContextRunner applicationContextRunner = new ApplicationContextRunner().withPropertyValues(
+ "spring.application.name=test"
+ );
- private final WebApplicationContextRunner webApplicationContextRunner = new WebApplicationContextRunner();
+ private final WebApplicationContextRunner webApplicationContextRunner = new WebApplicationContextRunner().withPropertyValues(
+ "spring.application.name=test"
+ );
- private final ReactiveWebApplicationContextRunner reactiveWebApplicationContextRunner = new ReactiveWebApplicationContextRunner();
+ private final ReactiveWebApplicationContextRunner reactiveWebApplicationContextRunner = new ReactiveWebApplicationContextRunner().withPropertyValues(
+ "spring.application.name=test"
+ );
/**
* No any web application.
@@ -45,7 +53,7 @@ public class MetadataAutoConfigurationTest {
@Test
public void test1() {
this.applicationContextRunner
- .withConfiguration(AutoConfigurations.of(MetadataAutoConfiguration.class))
+ .withConfiguration(AutoConfigurations.of(MetadataAutoConfiguration.class, ApplicationContextAwareUtils.class))
.run(context -> {
Assertions.assertThat(context).hasSingleBean(MetadataLocalProperties.class);
});
@@ -57,7 +65,7 @@ public class MetadataAutoConfigurationTest {
@Test
public void test2() {
this.webApplicationContextRunner
- .withConfiguration(AutoConfigurations.of(MetadataAutoConfiguration.class))
+ .withConfiguration(AutoConfigurations.of(MetadataAutoConfiguration.class, ApplicationContextAwareUtils.class))
.run(context -> {
Assertions.assertThat(context).hasSingleBean(MetadataLocalProperties.class);
});
@@ -69,7 +77,7 @@ public class MetadataAutoConfigurationTest {
@Test
public void test3() {
this.reactiveWebApplicationContextRunner
- .withConfiguration(AutoConfigurations.of(MetadataAutoConfiguration.class))
+ .withConfiguration(AutoConfigurations.of(MetadataAutoConfiguration.class, ApplicationContextAwareUtils.class))
.run(context -> {
Assertions.assertThat(context).hasSingleBean(MetadataLocalProperties.class);
});
diff --git a/spring-cloud-tencent-rpc-enhancement/src/test/java/com/tencent/cloud/rpc/enhancement/config/RpcEnhancementAutoConfigurationTest.java b/spring-cloud-tencent-rpc-enhancement/src/test/java/com/tencent/cloud/rpc/enhancement/config/RpcEnhancementAutoConfigurationTest.java
index 7be8b8b60..199fd36b7 100644
--- a/spring-cloud-tencent-rpc-enhancement/src/test/java/com/tencent/cloud/rpc/enhancement/config/RpcEnhancementAutoConfigurationTest.java
+++ b/spring-cloud-tencent-rpc-enhancement/src/test/java/com/tencent/cloud/rpc/enhancement/config/RpcEnhancementAutoConfigurationTest.java
@@ -50,7 +50,7 @@ public class RpcEnhancementAutoConfigurationTest {
RpcEnhancementAutoConfiguration.class,
PolarisRestTemplateAutoConfigurationTester.class,
FeignLoadBalancerAutoConfiguration.class))
- .withPropertyValues("spring.cloud.polaris.circuitbreaker.enabled=true");
+ .withPropertyValues("spring.cloud.polaris.circuitbreaker.enabled=true", "spring.application.name=test");
@Test
public void testDefaultInitialization() {
diff --git a/spring-cloud-tencent-rpc-enhancement/src/test/java/com/tencent/cloud/rpc/enhancement/config/RpcEnhancementReporterPropertiesTest.java b/spring-cloud-tencent-rpc-enhancement/src/test/java/com/tencent/cloud/rpc/enhancement/config/RpcEnhancementReporterPropertiesTest.java
index 48db48072..111c031c5 100644
--- a/spring-cloud-tencent-rpc-enhancement/src/test/java/com/tencent/cloud/rpc/enhancement/config/RpcEnhancementReporterPropertiesTest.java
+++ b/spring-cloud-tencent-rpc-enhancement/src/test/java/com/tencent/cloud/rpc/enhancement/config/RpcEnhancementReporterPropertiesTest.java
@@ -38,7 +38,7 @@ import static org.springframework.http.HttpStatus.Series.SERVER_ERROR;
* @author Haotian Zhang
*/
@ExtendWith(SpringExtension.class)
-@SpringBootTest(classes = RpcEnhancementReporterPropertiesTest.TestApplication.class)
+@SpringBootTest(classes = RpcEnhancementReporterPropertiesTest.TestApplication.class, properties = "spring.application.name=test")
@ActiveProfiles("test")
public class RpcEnhancementReporterPropertiesTest {
diff --git a/spring-cloud-tencent-rpc-enhancement/src/test/java/com/tencent/cloud/rpc/enhancement/stat/config/StatConfigModifierTest.java b/spring-cloud-tencent-rpc-enhancement/src/test/java/com/tencent/cloud/rpc/enhancement/stat/config/StatConfigModifierTest.java
index ba55b6f2e..4ef678597 100644
--- a/spring-cloud-tencent-rpc-enhancement/src/test/java/com/tencent/cloud/rpc/enhancement/stat/config/StatConfigModifierTest.java
+++ b/spring-cloud-tencent-rpc-enhancement/src/test/java/com/tencent/cloud/rpc/enhancement/stat/config/StatConfigModifierTest.java
@@ -41,7 +41,8 @@ public class StatConfigModifierTest {
.withPropertyValues("spring.cloud.polaris.stat.enabled=true")
.withPropertyValues("spring.cloud.polaris.stat.host=127.0.0.1")
.withPropertyValues("spring.cloud.polaris.stat.port=20000")
- .withPropertyValues("spring.cloud.polaris.stat.path=/xxx");
+ .withPropertyValues("spring.cloud.polaris.stat.path=/xxx")
+ .withPropertyValues("spring.application.name=test");
private final ApplicationContextRunner pushContextRunner = new ApplicationContextRunner()
.withConfiguration(AutoConfigurations.of(TestApplication.class))
@@ -49,12 +50,14 @@ public class StatConfigModifierTest {
.withPropertyValues("spring.cloud.polaris.stat.enabled=true")
.withPropertyValues("spring.cloud.polaris.stat.pushgateway.enabled=true")
.withPropertyValues("spring.cloud.polaris.stat.pushgateway.address=127.0.0.1:9091")
- .withPropertyValues("spring.cloud.polaris.stat.pushgateway.push-interval=1000");
+ .withPropertyValues("spring.cloud.polaris.stat.pushgateway.push-interval=1000")
+ .withPropertyValues("spring.application.name=test");
private final ApplicationContextRunner disabledContextRunner = new ApplicationContextRunner()
.withConfiguration(AutoConfigurations.of(TestApplication.class))
.withPropertyValues("spring.cloud.polaris.enabled=true")
- .withPropertyValues("spring.cloud.polaris.stat.enabled=false");
+ .withPropertyValues("spring.cloud.polaris.stat.enabled=false")
+ .withPropertyValues("spring.application.name=test");
@Test
void testPull() {