From 35458f8b4fa5b4ec000c9e0c60eda3354013efeb Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=B0=8F=E9=AD=8F=2C=E5=B0=8F=E9=AD=8F=2C=E6=88=91?=
=?UTF-8?q?=E4=BB=AC=E8=A6=81=E5=8E=BB=E5=93=AA=E9=87=8C=E5=91=80?=
<30821411+galaxy-sea@users.noreply.github.com>
Date: Sun, 25 Sep 2022 11:15:24 +0800
Subject: [PATCH 1/4] Maybe remove Chinese characters (#607)
---
CHANGELOG.md | 1 +
CONTRIBUTING.md | 2 +-
README-zh.md | 2 +-
README.md | 2 +-
changes/changes-1.7.0.md | 2 +-
.../PolarisConfigAnnotationProcessor.java | 2 +-
.../PolarisConfigKVFileChangeListener.java | 2 +-
.../configdata/PolarisConfigDataLoader.java | 2 +-
.../configdata/PolarisConfigDataResource.java | 2 +-
...PolarisImportExceptionFailureAnalyzer.java | 2 +-
.../PolarisConfigListenerContext.java | 2 +-
.../cloud/polaris/util/OkHttpUtil.java | 4 +-
.../metadata-transfer-example/README.md | 4 +-
.../PolarisConfigDataExampleApplication.java | 2 +-
.../README.md | 4 +-
.../README.md | 48 +++++++++----------
16 files changed, 42 insertions(+), 41 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 605d677bd..59f42e401 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -5,3 +5,4 @@
- [Optimize: remove discovery module useless code](https://github.com/Tencent/spring-cloud-tencent/pull/595)
- [Optimize: remove useless code for rest template router](https://github.com/Tencent/spring-cloud-tencent/pull/601)
- [Optimize: optimize configuration conditional & optimize config data tips](https://github.com/Tencent/spring-cloud-tencent/pull/603)
+- [Optimize: Maybe remove Chinese characters](https://github.com/Tencent/spring-cloud-tencent/pull/607)
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index c5b1e573f..86f23b37b 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -1,6 +1,6 @@
# Contributing
---
-If you have good comments or suggestions, welcome to create [Issues](https://github.com/Tencent/spring-cloud-tencent/issues) or [Pull Requests](https://github.com/Tencent/spring-cloud-tencent/pulls),contribute to the Spring Cloud Tencent open source community. Spring Cloud Tencent continues to recruit contributors, even if it is answering questions in the issue, or doing some simple bugfixes, it will be of great help to Spring Cloud Tencent.
+If you have good comments or suggestions, welcome to create [Issues](https://github.com/Tencent/spring-cloud-tencent/issues) or [Pull Requests](https://github.com/Tencent/spring-cloud-tencent/pulls), contribute to the Spring Cloud Tencent open source community. Spring Cloud Tencent continues to recruit contributors, even if it is answering questions in the issue, or doing some simple bugfixes, it will be of great help to Spring Cloud Tencent.
[Tencent Open Source Incentive Program](https://opensource.tencent.com/contribution) Encourage developers to participate and contribute, and look forward to your joining.
diff --git a/README-zh.md b/README-zh.md
index 2eed3f1fb..8eb306782 100644
--- a/README-zh.md
+++ b/README-zh.md
@@ -113,7 +113,7 @@ You can build this project with command:
- [Actuator Endpoint Extension](https://github.com/Tencent/spring-cloud-tencent/wiki/Actuator-Endpoint-%E6%89%A9%E5%B1%95)
- 最佳实践
- - [Multi-feature environment](https://github.com/Tencent/spring-cloud-tencent/wiki/多特性环境)
+ - [Multi-feature environment](https://github.com/Tencent/spring-cloud-tencent/wiki/%E5%A4%9A%E7%89%B9%E6%80%A7%E7%8E%AF%E5%A2%83)
- [Multi-registration and multi-discovery](https://github.com/Tencent/spring-cloud-tencent/wiki/Multi-registration-and-multi-discovery)
- 开发文档
diff --git a/README.md b/README.md
index 1d8024c1f..d3a350a8d 100644
--- a/README.md
+++ b/README.md
@@ -115,7 +115,7 @@ You can build this project with command:
- [Actuator Endpoint Extension](https://github.com/Tencent/spring-cloud-tencent/wiki/Actuator-Endpoint-%E6%89%A9%E5%B1%95)
- Best Practices
- - [Multi-feature environment](https://github.com/Tencent/spring-cloud-tencent/wiki/多特性环境)
+ - [Multi-feature environment](https://github.com/Tencent/spring-cloud-tencent/wiki/%E5%A4%9A%E7%89%B9%E6%80%A7%E7%8E%AF%E5%A2%83)
- [Multi-registration and multi-discovery](https://github.com/Tencent/spring-cloud-tencent/wiki/Multi-registration-and-multi-discovery)
- Development documentation
diff --git a/changes/changes-1.7.0.md b/changes/changes-1.7.0.md
index 4089d1fd7..185420071 100644
--- a/changes/changes-1.7.0.md
+++ b/changes/changes-1.7.0.md
@@ -22,7 +22,7 @@
- [Optimize router label resolver spi](https://github.com/Tencent/spring-cloud-tencent/pull/524)
- [Code optimization for rpc-enhancement module](https://github.com/Tencent/spring-cloud-tencent/pull/526)
- [Feature: Optimized configuration update](https://github.com/Tencent/spring-cloud-tencent/pull/528)
-- [Feature:support pushGateway push metrics](https://github.com/Tencent/spring-cloud-tencent/pull/529)
+- [Feature: support pushGateway push metrics](https://github.com/Tencent/spring-cloud-tencent/pull/529)
- [Feature: remove location metadata](https://github.com/Tencent/spring-cloud-tencent/pull/536)
- [Feature: remove location metadata](https://github.com/Tencent/spring-cloud-tencent/pull/542)
- [add feature-env plugin & add spring cloud gateway staining plugin](https://github.com/Tencent/spring-cloud-tencent/pull/533)
diff --git a/spring-cloud-starter-tencent-polaris-config/src/main/java/com/tencent/cloud/polaris/config/annotation/PolarisConfigAnnotationProcessor.java b/spring-cloud-starter-tencent-polaris-config/src/main/java/com/tencent/cloud/polaris/config/annotation/PolarisConfigAnnotationProcessor.java
index 04e3ea490..b137c4909 100644
--- a/spring-cloud-starter-tencent-polaris-config/src/main/java/com/tencent/cloud/polaris/config/annotation/PolarisConfigAnnotationProcessor.java
+++ b/spring-cloud-starter-tencent-polaris-config/src/main/java/com/tencent/cloud/polaris/config/annotation/PolarisConfigAnnotationProcessor.java
@@ -40,7 +40,7 @@ import static com.tencent.cloud.polaris.config.listener.PolarisConfigListenerCon
/**
* {@link PolarisConfigAnnotationProcessor} implementation for spring .
- *
This source file was reference from:
+ *
This source file was reference from:
*
* ApolloAnnotationProcessor
* @author Palmer Xu 2022-06-07
diff --git a/spring-cloud-starter-tencent-polaris-config/src/main/java/com/tencent/cloud/polaris/config/annotation/PolarisConfigKVFileChangeListener.java b/spring-cloud-starter-tencent-polaris-config/src/main/java/com/tencent/cloud/polaris/config/annotation/PolarisConfigKVFileChangeListener.java
index d5e291996..eba43e819 100644
--- a/spring-cloud-starter-tencent-polaris-config/src/main/java/com/tencent/cloud/polaris/config/annotation/PolarisConfigKVFileChangeListener.java
+++ b/spring-cloud-starter-tencent-polaris-config/src/main/java/com/tencent/cloud/polaris/config/annotation/PolarisConfigKVFileChangeListener.java
@@ -26,7 +26,7 @@ import java.lang.annotation.Target;
/**
* Configuring the change listener annotation.
- *
This source file was reference from:
+ *
This source file was reference from:
*
* ApolloAnnotationProcessor
* @author Palmer Xu 2022-05-31
diff --git a/spring-cloud-starter-tencent-polaris-config/src/main/java/com/tencent/cloud/polaris/config/configdata/PolarisConfigDataLoader.java b/spring-cloud-starter-tencent-polaris-config/src/main/java/com/tencent/cloud/polaris/config/configdata/PolarisConfigDataLoader.java
index 2e6473df7..300ea1bb3 100644
--- a/spring-cloud-starter-tencent-polaris-config/src/main/java/com/tencent/cloud/polaris/config/configdata/PolarisConfigDataLoader.java
+++ b/spring-cloud-starter-tencent-polaris-config/src/main/java/com/tencent/cloud/polaris/config/configdata/PolarisConfigDataLoader.java
@@ -52,7 +52,7 @@ import static org.springframework.boot.context.config.ConfigData.Option.PROFILE_
* Load {@link ConfigData} via {@link PolarisConfigDataLoader}
*
* @author wlx
- * @date 2022/7/5 11:14 下午
+ * @date 2022/7/5 11:14 PM
*/
public class PolarisConfigDataLoader implements ConfigDataLoader {
diff --git a/spring-cloud-starter-tencent-polaris-config/src/main/java/com/tencent/cloud/polaris/config/configdata/PolarisConfigDataResource.java b/spring-cloud-starter-tencent-polaris-config/src/main/java/com/tencent/cloud/polaris/config/configdata/PolarisConfigDataResource.java
index 04b81a487..c0a33566b 100644
--- a/spring-cloud-starter-tencent-polaris-config/src/main/java/com/tencent/cloud/polaris/config/configdata/PolarisConfigDataResource.java
+++ b/spring-cloud-starter-tencent-polaris-config/src/main/java/com/tencent/cloud/polaris/config/configdata/PolarisConfigDataResource.java
@@ -30,7 +30,7 @@ import org.springframework.boot.context.config.Profiles;
* A polaris configData resource from which {@link ConfigData} can be loaded.
*
* @author wlx
- * @date 2022/7/5 11:13 下午
+ * @date 2022/7/5 11:13 PM
*/
public class PolarisConfigDataResource extends ConfigDataResource {
diff --git a/spring-cloud-starter-tencent-polaris-config/src/main/java/com/tencent/cloud/polaris/config/configdata/PolarisImportExceptionFailureAnalyzer.java b/spring-cloud-starter-tencent-polaris-config/src/main/java/com/tencent/cloud/polaris/config/configdata/PolarisImportExceptionFailureAnalyzer.java
index 2f29d923c..245dc7001 100644
--- a/spring-cloud-starter-tencent-polaris-config/src/main/java/com/tencent/cloud/polaris/config/configdata/PolarisImportExceptionFailureAnalyzer.java
+++ b/spring-cloud-starter-tencent-polaris-config/src/main/java/com/tencent/cloud/polaris/config/configdata/PolarisImportExceptionFailureAnalyzer.java
@@ -7,7 +7,7 @@ import org.springframework.cloud.commons.ConfigDataMissingEnvironmentPostProcess
/**
* Class for most {@code FailureAnalyzer} implementations, to analyze ImportException when
* miss Polaris configData config.
- * Refer to the Nacos project implementation:
+ *
Refer to the Nacos project implementation:
*
* ImportExceptionFailureAnalyzer
*
diff --git a/spring-cloud-starter-tencent-polaris-config/src/main/java/com/tencent/cloud/polaris/config/listener/PolarisConfigListenerContext.java b/spring-cloud-starter-tencent-polaris-config/src/main/java/com/tencent/cloud/polaris/config/listener/PolarisConfigListenerContext.java
index 01aebbb46..07edc90e4 100644
--- a/spring-cloud-starter-tencent-polaris-config/src/main/java/com/tencent/cloud/polaris/config/listener/PolarisConfigListenerContext.java
+++ b/spring-cloud-starter-tencent-polaris-config/src/main/java/com/tencent/cloud/polaris/config/listener/PolarisConfigListenerContext.java
@@ -49,7 +49,7 @@ import static com.tencent.polaris.configuration.api.core.ChangeType.MODIFIED;
/**
* Polaris Config Listener Context Defined .
- *
This source file was reference from:
+ *
This source file was reference from:
*
* AbstractConfig
* @author Palmer Xu 2022-06-06
diff --git a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/util/OkHttpUtil.java b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/util/OkHttpUtil.java
index df9db0be5..77dd62f4a 100644
--- a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/util/OkHttpUtil.java
+++ b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/util/OkHttpUtil.java
@@ -62,12 +62,12 @@ public final class OkHttpUtil {
if (response.isSuccessful() && Objects.nonNull(response.body())) {
String result = response.body().string();
- LOGGER.debug("exec get request, url: {} success,response data: {}", url, result);
+ LOGGER.debug("exec get request, url: {} success, response data: {}", url, result);
return true;
}
}
catch (Exception e) {
- LOGGER.error("exec get request,url: {} failed!", url, e);
+ LOGGER.error("exec get request, url: {} failed!", url, e);
}
return false;
}
diff --git a/spring-cloud-tencent-examples/metadata-transfer-example/README.md b/spring-cloud-tencent-examples/metadata-transfer-example/README.md
index 5fd736ba5..d2d524bf8 100644
--- a/spring-cloud-tencent-examples/metadata-transfer-example/README.md
+++ b/spring-cloud-tencent-examples/metadata-transfer-example/README.md
@@ -5,7 +5,7 @@
This example shows how to use ```spring-cloud-starter-tencent-metadata-transfer``` in Spring Cloud project for its
features.
-This example contains ```metadata-frontend```、```metadata-middle```、```metadata-backend```.
+This example contains ```metadata-frontend```, ```metadata-middle```, ```metadata-backend```.
## Instruction
@@ -55,7 +55,7 @@ Execute under ```spring-cloud-tencent-examples/metadata-transfer-example```
mvn clean package
```
-Then find the jars under ```metadata-frontend```、```metadata-middle```、```metadata-backend```, and run it:
+Then find the jars under ```metadata-frontend```, ```metadata-middle```, ```metadata-backend```, and run it:
```
java -jar ${app.jar}
diff --git a/spring-cloud-tencent-examples/polaris-config-data-example/src/main/java/com/tencent/cloud/polaris/config/example/PolarisConfigDataExampleApplication.java b/spring-cloud-tencent-examples/polaris-config-data-example/src/main/java/com/tencent/cloud/polaris/config/example/PolarisConfigDataExampleApplication.java
index 8c4e38762..78eec0f17 100644
--- a/spring-cloud-tencent-examples/polaris-config-data-example/src/main/java/com/tencent/cloud/polaris/config/example/PolarisConfigDataExampleApplication.java
+++ b/spring-cloud-tencent-examples/polaris-config-data-example/src/main/java/com/tencent/cloud/polaris/config/example/PolarisConfigDataExampleApplication.java
@@ -5,7 +5,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
* @author wlx
- * @date 2022/7/6 9:15 下午
+ * @date 2022/7/6 9:15 PM
*/
@SpringBootApplication
public class PolarisConfigDataExampleApplication {
diff --git a/spring-cloud-tencent-examples/polaris-router-featureenv-example/README.md b/spring-cloud-tencent-examples/polaris-router-featureenv-example/README.md
index e0853aef2..8cf15c314 100644
--- a/spring-cloud-tencent-examples/polaris-router-featureenv-example/README.md
+++ b/spring-cloud-tencent-examples/polaris-router-featureenv-example/README.md
@@ -32,7 +32,7 @@ By default, the applications point to the official Polaris experience environmen
registration data at the experience site after a successful launch.
- Console address: http://14.116.241.63:8080/
- - Account:polaris
+ - Account: polaris
- Password: polaris
## III. Testing
@@ -89,7 +89,7 @@ Simulate a real-world scenario, assuming that the client request has a uid reque
**Configure coloring rules**
-Polaris Configuration Address:http://14.116.241.63:8080/#/filegroup-detail?group=featureenv-gateway&namespace=default
+Polaris Configuration Address: http://14.116.241.63:8080/#/filegroup-detail?group=featureenv-gateway&namespace=default
Modify the `rule/staining.json` configuration file and fill in the following rule:
diff --git a/spring-cloud-tencent-examples/polaris-router-grayrelease-example/README.md b/spring-cloud-tencent-examples/polaris-router-grayrelease-example/README.md
index 8ad68bbeb..4359bfcd8 100644
--- a/spring-cloud-tencent-examples/polaris-router-grayrelease-example/README.md
+++ b/spring-cloud-tencent-examples/polaris-router-grayrelease-example/README.md
@@ -10,10 +10,10 @@ This project shows how to use Spring Cloud Tencent route and transitive feature

-Incoming requests dispatched from Gateway service to 3 environments:
+Incoming requests dispatched from Gateway service to 3 environments:
- gray1(match uid=1), env=green(green environment)
- gray2(match uid=2), env=purple(purple environment)
-- baseline(stable environment, match all other requests), env=blue(blue environment)
+- baseline(stable environment, match all other requests), env=blue(blue environment)
## How to access
@@ -26,8 +26,8 @@ Incoming requests dispatched from Gateway service to 3 environments:
2. start router-grayrelease-gateway application
- - Launch by IDE:Start the main class `GrayReleaseGatewayApplication`.
- - Launch by Jar:Execute `mvn clean package` to compile with jar package, then use `java -jar router-grayrelease-gateway-${verion}.jar` to launch application.
+ - Launch by IDE: Start the main class `GrayReleaseGatewayApplication`.
+ - Launch by Jar: Execute `mvn clean package` to compile with jar package, then use `java -jar router-grayrelease-gateway-${verion}.jar` to launch application.
3. add the route rule
@@ -136,13 +136,13 @@ Incoming requests dispatched from Gateway service to 3 environments:
- polaris server address: polaris_address=grpc://127.0.0.1:8091
- pushgateway address: prometheus_address=127.0.0.1:9091
- - env tag:SCT_METADATA_CONTENT_env=blue
- - transitive tag:SCT_METADATA_CONTENT_TRANSITIVE=env
+ - env tag: SCT_METADATA_CONTENT_env=blue
+ - transitive tag: SCT_METADATA_CONTENT_TRANSITIVE=env
2. start router-grayrelease-frontend application
- - Launch by IDE:Start the main class `GrayReleaseFrontApplication`.
- - Launch by Jar:Execute `mvn clean package` to compile with jar package, then use `java -jar router-grayrelease-frontend-${verion}.jar` to launch application.
+ - Launch by IDE: Start the main class `GrayReleaseFrontApplication`.
+ - Launch by Jar: Execute `mvn clean package` to compile with jar package, then use `java -jar router-grayrelease-frontend-${verion}.jar` to launch application.
#### Start gray1 environment (green)
@@ -150,8 +150,8 @@ Incoming requests dispatched from Gateway service to 3 environments:
- polaris server address: polaris_address=grpc://127.0.0.1:8091
- pushgateway address: prometheus_address=127.0.0.1:9091
- - env tag:SCT_METADATA_CONTENT_env=green
- - transitive tag:SCT_METADATA_CONTENT_TRANSITIVE=env
+ - env tag: SCT_METADATA_CONTENT_env=green
+ - transitive tag: SCT_METADATA_CONTENT_TRANSITIVE=env
2. start router-grayrelease-frontend application (same as previous instruction)
@@ -163,8 +163,8 @@ Incoming requests dispatched from Gateway service to 3 environments:
- polaris server address: polaris_address=grpc://127.0.0.1:8091
- pushgateway address: prometheus_address=127.0.0.1:9091
- - env tag:SCT_METADATA_CONTENT_env=purple
- - transitive tag:SCT_METADATA_CONTENT_TRANSITIVE=env
+ - env tag: SCT_METADATA_CONTENT_env=purple
+ - transitive tag: SCT_METADATA_CONTENT_TRANSITIVE=env
2. start router-grayrelease-frontend application (same as previous instruction)
@@ -182,13 +182,13 @@ You can find the instances with different tags in polaris console.
- polaris server address: polaris_address=grpc://127.0.0.1:8091
- pushgateway address: prometheus_address=127.0.0.1:9091
- - env tag:SCT_METADATA_CONTENT_env=blue
- - transitive tag:SCT_METADATA_CONTENT_TRANSITIVE=env
+ - env tag: SCT_METADATA_CONTENT_env=blue
+ - transitive tag: SCT_METADATA_CONTENT_TRANSITIVE=env
2. start router-grayrelease-middle application
- - Launch by IDE:Start the main class `GrayReleaseMiddleApplication`.
- - Launch by Jar:Execute `mvn clean package` to compile with jar package, then use `java -jar router-grayrelease-middle-${verion}.jar` to launch application.
+ - Launch by IDE: Start the main class `GrayReleaseMiddleApplication`.
+ - Launch by Jar: Execute `mvn clean package` to compile with jar package, then use `java -jar router-grayrelease-middle-${verion}.jar` to launch application.
#### Start gray2 environment (purple)
@@ -196,8 +196,8 @@ You can find the instances with different tags in polaris console.
- polaris server address: polaris_address=grpc://127.0.0.1:8091
- pushgateway address: prometheus_address=127.0.0.1:9091
- - env tag:SCT_METADATA_CONTENT_env=purple
- - transitive tag:SCT_METADATA_CONTENT_TRANSITIVE=env
+ - env tag: SCT_METADATA_CONTENT_env=purple
+ - transitive tag: SCT_METADATA_CONTENT_TRANSITIVE=env
2. start router-grayrelease-middle application (same as previous instruction)
@@ -209,13 +209,13 @@ You can find the instances with different tags in polaris console.
- polaris server address: polaris_address=grpc://127.0.0.1:8091
- pushgateway address: prometheus_address=127.0.0.1:9091
- - env tag:SCT_METADATA_CONTENT_env=blue
- - transitive tag:SCT_METADATA_CONTENT_TRANSITIVE=env
+ - env tag: SCT_METADATA_CONTENT_env=blue
+ - transitive tag: SCT_METADATA_CONTENT_TRANSITIVE=env
2. start router-grayrelease-backend application
- - Launch by IDE:Start the main class `GrayReleaseBackendApplication`.
- - Launch by Jar:Execute `mvn clean package` to compile with jar package, then use `java -jar router-grayrelease-backend-${verion}.jar` to launch application.
+ - Launch by IDE: Start the main class `GrayReleaseBackendApplication`.
+ - Launch by Jar: Execute `mvn clean package` to compile with jar package, then use `java -jar router-grayrelease-backend-${verion}.jar` to launch application.
#### Start gray1 environment (green)
@@ -223,8 +223,8 @@ You can find the instances with different tags in polaris console.
- polaris server address: polaris_address=grpc://127.0.0.1:8091
- pushgateway address: prometheus_address=127.0.0.1:9091
- - env tag:SCT_METADATA_CONTENT_env=green
- - transitive tag:SCT_METADATA_CONTENT_TRANSITIVE=env
+ - env tag: SCT_METADATA_CONTENT_env=green
+ - transitive tag: SCT_METADATA_CONTENT_TRANSITIVE=env
2. start router-grayrelease-backend application (same as previous instruction)
From dad543e225f9f59592643ddec028f19a9bd4420d Mon Sep 17 00:00:00 2001
From: Wu Daifu <35672972+pandaapo@users.noreply.github.com>
Date: Mon, 26 Sep 2022 19:02:26 +0800
Subject: [PATCH 2/4] Automatically transmit some headers specified by a
environment varaible that directly defines header keys. (#606)
Co-authored-by: Haotian Zhang <928016560@qq.com>
---
CHANGELOG.md | 1 +
.../DecodeTransferMetadataReactiveFilter.java | 37 ++++++++++++++++++
.../DecodeTransferMetadataServletFilter.java | 32 ++++++++++++++++
.../EncodeTransferMedataFeignInterceptor.java | 15 +++++++-
...TransferMedataRestTemplateInterceptor.java | 12 ++++++
.../core/EncodeTransferMedataScgFilter.java | 38 +++++++++++++++++++
.../common/metadata/MetadataContext.java | 10 +++++
.../metadata/MetadataContextHolder.java | 2 +
.../metadata/StaticMetadataManager.java | 18 ++++++++-
9 files changed, 163 insertions(+), 2 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 59f42e401..f879f31d0 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -5,4 +5,5 @@
- [Optimize: remove discovery module useless code](https://github.com/Tencent/spring-cloud-tencent/pull/595)
- [Optimize: remove useless code for rest template router](https://github.com/Tencent/spring-cloud-tencent/pull/601)
- [Optimize: optimize configuration conditional & optimize config data tips](https://github.com/Tencent/spring-cloud-tencent/pull/603)
+- [Automatically transmit some headers specified by a environment varaible that directly defines header keys.](https://github.com/Tencent/spring-cloud-tencent/pull/606)
- [Optimize: Maybe remove Chinese characters](https://github.com/Tencent/spring-cloud-tencent/pull/607)
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 957493cad..104af37b6 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
@@ -20,8 +20,13 @@ package com.tencent.cloud.metadata.core;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
+import java.util.Arrays;
import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
import java.util.Map;
+import java.util.Optional;
+import java.util.Set;
import com.tencent.cloud.common.constant.MetadataConstant;
import com.tencent.cloud.common.metadata.MetadataContextHolder;
@@ -33,6 +38,7 @@ import reactor.core.publisher.Mono;
import org.springframework.core.Ordered;
import org.springframework.http.HttpHeaders;
import org.springframework.http.server.reactive.ServerHttpRequest;
+import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import org.springframework.web.server.ServerWebExchange;
import org.springframework.web.server.WebFilter;
@@ -41,6 +47,8 @@ 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.metadata.MetadataContext.FRAGMENT_RAW_TRANSHEADERS;
+import static com.tencent.cloud.common.metadata.MetadataContext.FRAGMENT_RAW_TRANSHEADERS_KV;
/**
* Filter used for storing the metadata from upstream temporarily when web application is
@@ -79,12 +87,41 @@ public class DecodeTransferMetadataReactiveFilter implements WebFilter, Ordered
MetadataConstant.HeaderName.METADATA_CONTEXT,
MetadataContextHolder.get());
+ setCompleteTransHeaderIntoMC(serverHttpRequest);
return webFilterChain.filter(serverWebExchange)
.doOnError(throwable -> LOG.error("handle metadata[{}] error.",
MetadataContextHolder.get(), throwable))
.doFinally((type) -> MetadataContextHolder.remove());
}
+ /**
+ * According to ServerHttpRequest and trans-headers(key list in string type) in metadata, build
+ * the complete headers(key-value list in map type) into metadata.
+ */
+ private void setCompleteTransHeaderIntoMC(ServerHttpRequest serverHttpRequest) {
+ // transHeaderMetadata: for example, {"trans-headers" : {"header1;header2;header3":""}}
+ Map transHeaderMetadata = MetadataContextHolder.get()
+ .getFragmentContext(FRAGMENT_RAW_TRANSHEADERS);
+ if (!CollectionUtils.isEmpty(transHeaderMetadata)) {
+ Optional transHeaders = transHeaderMetadata.keySet().stream().findFirst();
+ String[] transHeaderArray = transHeaders.get().split(";");
+ HttpHeaders headers = serverHttpRequest.getHeaders();
+ Set headerKeys = headers.keySet();
+ Iterator iterator = headerKeys.iterator();
+ while (iterator.hasNext()) {
+ String httpHeader = iterator.next();
+ Arrays.stream(transHeaderArray).forEach(transHeader -> {
+ if (transHeader.equals(httpHeader)) {
+ List list = headers.get(httpHeader);
+ String httpHeaderValue = JacksonUtils.serialize2Json(list);
+ MetadataContextHolder.get().putContext(FRAGMENT_RAW_TRANSHEADERS_KV, httpHeader, httpHeaderValue);
+ return;
+ }
+ });
+ }
+ }
+ }
+
private Map getIntervalMetadata(ServerHttpRequest serverHttpRequest, String headerName) {
HttpHeaders httpHeaders = serverHttpRequest.getHeaders();
String customMetadataStr = httpHeaders.getFirst(headerName);
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 a67563915..cdf1f8e4e 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
@@ -21,8 +21,11 @@ package com.tencent.cloud.metadata.core;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
+import java.util.Arrays;
+import java.util.Enumeration;
import java.util.HashMap;
import java.util.Map;
+import java.util.Optional;
import javax.servlet.FilterChain;
import javax.servlet.ServletException;
@@ -37,12 +40,15 @@ import org.slf4j.LoggerFactory;
import org.springframework.core.annotation.Order;
import org.springframework.lang.NonNull;
+import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
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.metadata.MetadataContext.FRAGMENT_RAW_TRANSHEADERS;
+import static com.tencent.cloud.common.metadata.MetadataContext.FRAGMENT_RAW_TRANSHEADERS_KV;
/**
* Filter used for storing the metadata from upstream temporarily when web application is
@@ -71,9 +77,35 @@ public class DecodeTransferMetadataServletFilter extends OncePerRequestFilter {
MetadataContextHolder.init(mergedTransitiveMetadata, mergedDisposableMetadata);
+ setCompleteTransHeaderIntoMC(httpServletRequest);
filterChain.doFilter(httpServletRequest, httpServletResponse);
}
+ /**
+ * According to HttpServletRequest and trans-headers(key list in string type) in metadata, build
+ * the complete headers(key-value list in map type) into metadata.
+ */
+ private void setCompleteTransHeaderIntoMC(HttpServletRequest httpServletRequest) {
+ // transHeaderMetadata: for example, {"trans-headers" : {"header1;header2;header3":""}}
+ Map transHeaderMetadata = MetadataContextHolder.get()
+ .getFragmentContext(FRAGMENT_RAW_TRANSHEADERS);
+ if (!CollectionUtils.isEmpty(transHeaderMetadata)) {
+ Optional transHeaders = transHeaderMetadata.keySet().stream().findFirst();
+ String[] transHeaderArray = transHeaders.get().split(";");
+ Enumeration httpHeaders = httpServletRequest.getHeaderNames();
+ while (httpHeaders.hasMoreElements()) {
+ String httpHeader = httpHeaders.nextElement();
+ Arrays.stream(transHeaderArray).forEach(transHeader -> {
+ if (transHeader.equals(httpHeader)) {
+ String httpHeaderValue = httpServletRequest.getHeader(httpHeader);
+ MetadataContextHolder.get().putContext(FRAGMENT_RAW_TRANSHEADERS_KV, httpHeader, httpHeaderValue);
+ return;
+ }
+ });
+ }
+ }
+ }
+
private Map getInternalMetadata(HttpServletRequest httpServletRequest, String headerName) {
// Get custom metadata string from http header.
String customMetadataStr = httpServletRequest.getHeader(headerName);
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 fa63f3df8..b35ec02df 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
@@ -61,6 +61,7 @@ public class EncodeTransferMedataFeignInterceptor implements RequestInterceptor,
MetadataContext metadataContext = MetadataContextHolder.get();
Map customMetadata = metadataContext.getFragmentContext(MetadataContext.FRAGMENT_TRANSITIVE);
Map disposableMetadata = metadataContext.getFragmentContext(MetadataContext.FRAGMENT_DISPOSABLE);
+ Map transHeaders = metadataContext.getFragmentContext(MetadataContext.FRAGMENT_RAW_TRANSHEADERS_KV);
// Clean up one-time metadata coming from upstream .
Map newestCustomMetadata = new HashMap<>();
@@ -71,8 +72,20 @@ public class EncodeTransferMedataFeignInterceptor implements RequestInterceptor,
});
this.buildMetadataHeader(requestTemplate, disposableMetadata, CUSTOM_DISPOSABLE_METADATA);
- // process custom metadata finally
+ // process custom metadata
this.buildMetadataHeader(requestTemplate, newestCustomMetadata, CUSTOM_METADATA);
+
+ // set headers that need to be transmitted from the upstream
+ this.buildTransmittedHeader(requestTemplate, transHeaders);
+ }
+
+ private void buildTransmittedHeader(RequestTemplate requestTemplate, Map transHeaders) {
+ if (!CollectionUtils.isEmpty(transHeaders)) {
+ transHeaders.entrySet().stream().forEach(entry -> {
+ requestTemplate.removeHeader(entry.getKey());
+ requestTemplate.header(entry.getKey(), entry.getValue());
+ });
+ }
}
/**
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 513310da4..89d5c5f6e 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
@@ -61,6 +61,7 @@ public class EncodeTransferMedataRestTemplateInterceptor implements ClientHttpRe
MetadataContext metadataContext = MetadataContextHolder.get();
Map customMetadata = metadataContext.getFragmentContext(MetadataContext.FRAGMENT_TRANSITIVE);
Map disposableMetadata = metadataContext.getFragmentContext(MetadataContext.FRAGMENT_DISPOSABLE);
+ Map transHeaders = metadataContext.getFragmentContext(MetadataContext.FRAGMENT_RAW_TRANSHEADERS_KV);
Map newestCustomMetadata = new HashMap<>();
customMetadata.forEach((key, value) -> {
@@ -74,9 +75,20 @@ public class EncodeTransferMedataRestTemplateInterceptor implements ClientHttpRe
// build custom metadata request header
this.buildMetadataHeader(httpRequest, newestCustomMetadata, CUSTOM_METADATA);
+ // set headers that need to be transmitted from the upstream
+ this.buildTransmittedHeader(httpRequest, transHeaders);
+
return clientHttpRequestExecution.execute(httpRequest, bytes);
}
+ private void buildTransmittedHeader(HttpRequest request, Map transHeaders) {
+ if (!CollectionUtils.isEmpty(transHeaders)) {
+ transHeaders.entrySet().stream().forEach(entry -> {
+ request.getHeaders().set(entry.getKey(), entry.getValue());
+ });
+ }
+ }
+
/**
* Set metadata into the request header for {@link HttpRequest} .
*
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 95d7b5b2c..bd6b07ab2 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
@@ -20,8 +20,13 @@ package com.tencent.cloud.metadata.core;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
+import java.util.Arrays;
import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
import java.util.Map;
+import java.util.Optional;
+import java.util.Set;
import com.tencent.cloud.common.constant.MetadataConstant;
import com.tencent.cloud.common.metadata.MetadataContext;
@@ -32,6 +37,7 @@ import reactor.core.publisher.Mono;
import org.springframework.cloud.gateway.filter.GatewayFilterChain;
import org.springframework.cloud.gateway.filter.GlobalFilter;
import org.springframework.core.Ordered;
+import org.springframework.http.HttpHeaders;
import org.springframework.http.server.reactive.ServerHttpRequest;
import org.springframework.util.CollectionUtils;
import org.springframework.web.server.ServerWebExchange;
@@ -39,6 +45,8 @@ 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.metadata.MetadataContext.FRAGMENT_RAW_TRANSHEADERS;
+import static com.tencent.cloud.common.metadata.MetadataContext.FRAGMENT_RAW_TRANSHEADERS_KV;
import static org.springframework.cloud.gateway.filter.ReactiveLoadBalancerClientFilter.LOAD_BALANCER_CLIENT_FILTER_ORDER;
/**
@@ -80,9 +88,39 @@ public class EncodeTransferMedataScgFilter implements GlobalFilter, Ordered {
this.buildMetadataHeader(builder, newestCustomMetadata, CUSTOM_METADATA);
this.buildMetadataHeader(builder, disposableMetadata, CUSTOM_DISPOSABLE_METADATA);
+ setCompleteTransHeaderIntoMC(exchange.getRequest());
return chain.filter(exchange.mutate().request(builder.build()).build());
}
+ /**
+ * According to ServerHttpRequest and trans-headers(key list in string type) in metadata, build
+ * the complete headers(key-value list in map type) into metadata.
+ */
+ private void setCompleteTransHeaderIntoMC(ServerHttpRequest serverHttpRequest) {
+ // transHeaderMetadata: for example, {"trans-headers" : {"header1;header2;header3":""}}
+ Map transHeaderMetadata = MetadataContextHolder.get()
+ .getFragmentContext(FRAGMENT_RAW_TRANSHEADERS);
+ if (!CollectionUtils.isEmpty(transHeaderMetadata)) {
+ Optional transHeaders = transHeaderMetadata.keySet().stream().findFirst();
+ String[] transHeaderArray = transHeaders.get().split(";");
+ HttpHeaders headers = serverHttpRequest.getHeaders();
+ Set headerKeys = headers.keySet();
+ Iterator iterator = headerKeys.iterator();
+ while (iterator.hasNext()) {
+ String httpHeader = iterator.next();
+ Arrays.stream(transHeaderArray).forEach(transHeader -> {
+ if (transHeader.equals(httpHeader)) {
+ List list = headers.get(httpHeader);
+ String httpHeaderValue = JacksonUtils.serialize2Json(list);
+ // for example, {"trans-headers-kv" : {"header1":"v1","header2":"v2"...}}
+ MetadataContextHolder.get().putContext(FRAGMENT_RAW_TRANSHEADERS_KV, httpHeader, httpHeaderValue);
+ return;
+ }
+ });
+ }
+ }
+ }
+
/**
* Set metadata into the request header for {@link ServerHttpRequest.Builder} .
* @param builder instance of {@link ServerHttpRequest.Builder}
diff --git a/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/metadata/MetadataContext.java b/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/metadata/MetadataContext.java
index 4288ab8e4..d0ccaf084 100644
--- a/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/metadata/MetadataContext.java
+++ b/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/metadata/MetadataContext.java
@@ -56,6 +56,16 @@ public class MetadataContext {
*/
public static final String FRAGMENT_UPSTREAM_DISPOSABLE = "upstream-disposable";
+ /**
+ * the key of the header(key) list needed to be transmitted from upstream to downstream.
+ */
+ public static final String FRAGMENT_RAW_TRANSHEADERS = "trans-headers";
+
+ /**
+ * the key of the header(key-value) list needed to be transmitted from upstream to downstream.
+ */
+ public static final String FRAGMENT_RAW_TRANSHEADERS_KV = "trans-headers-kv";
+
private static final Logger LOG = LoggerFactory.getLogger(MetadataContext.class);
/**
* Namespace of local instance.
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 28520517b..3fe11f38e 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
@@ -28,6 +28,7 @@ import com.tencent.cloud.common.util.ApplicationContextAwareUtils;
import org.springframework.util.CollectionUtils;
import static com.tencent.cloud.common.metadata.MetadataContext.FRAGMENT_DISPOSABLE;
+import static com.tencent.cloud.common.metadata.MetadataContext.FRAGMENT_RAW_TRANSHEADERS;
import static com.tencent.cloud.common.metadata.MetadataContext.FRAGMENT_TRANSITIVE;
import static com.tencent.cloud.common.metadata.MetadataContext.FRAGMENT_UPSTREAM_DISPOSABLE;
@@ -67,6 +68,7 @@ public final class MetadataContextHolder {
MetadataContext metadataContext = new MetadataContext();
metadataContext.putFragmentContext(FRAGMENT_TRANSITIVE, staticMetadataManager.getMergedStaticTransitiveMetadata());
metadataContext.putFragmentContext(FRAGMENT_DISPOSABLE, staticMetadataManager.getMergedStaticDisposableMetadata());
+ metadataContext.putContext(FRAGMENT_RAW_TRANSHEADERS, staticMetadataManager.getEnvTransHeaderMetadata(), "");
METADATA_CONTEXT.set(metadataContext);
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 832e854e0..b983bc906 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
@@ -55,6 +55,12 @@ public class StaticMetadataManager {
private static final int ENV_METADATA_PREFIX_LENGTH = ENV_METADATA_PREFIX.length();
private static final String ENV_METADATA_CONTENT_TRANSITIVE = "SCT_METADATA_CONTENT_TRANSITIVE";
private static final String ENV_METADATA_CONTENT_DISPOSABLE = "SCT_METADATA_CONTENT_DISPOSABLE";
+ /**
+ * This is the key of the header's key list needed to be transmitted. The list is a string split with ;.
+ * The value mapped by this key was specified by user.
+ * This is configured in environment variables.
+ */
+ private static final String ENV_METADATA_CONTENT_RAW_TRANSHEADERS = "SCT_METADATA_CONTENT_RAW_TRANSHEADERS";
private static final String ENV_METADATA_ZONE = "SCT_METADATA_ZONE";
private static final String ENV_METADATA_REGION = "SCT_METADATA_REGION";
private static final String ENV_METADATA_CAMPUS = "SCT_METADATA_CAMPUS";
@@ -100,7 +106,13 @@ public class StaticMetadataManager {
String value = entry.getValue();
if (StringUtils.isNotBlank(key) && key.startsWith(ENV_METADATA_PREFIX)
&& !key.equals(ENV_METADATA_CONTENT_TRANSITIVE)) {
- String sourceKey = StringUtils.substring(key, ENV_METADATA_PREFIX_LENGTH);
+ String sourceKey = "";
+ if (key.equals(ENV_METADATA_CONTENT_RAW_TRANSHEADERS)) {
+ sourceKey = key;
+ }
+ else {
+ sourceKey = StringUtils.substring(key, ENV_METADATA_PREFIX_LENGTH);
+ }
envMetadata.put(sourceKey, value);
LOGGER.info("[SCT] resolve metadata from env. key = {}, value = {}", sourceKey, value);
@@ -270,6 +282,10 @@ public class StaticMetadataManager {
return envMetadata;
}
+ public String getEnvTransHeaderMetadata() {
+ return envMetadata.get(ENV_METADATA_CONTENT_RAW_TRANSHEADERS);
+ }
+
public Map getEnvTransitiveMetadata() {
return envTransitiveMetadata;
}
From 6a6970702ba5eec5f08a95371cd8488394f61b01 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=B0=8F=E9=AD=8F=2C=E5=B0=8F=E9=AD=8F=2C=E6=88=91?=
=?UTF-8?q?=E4=BB=AC=E8=A6=81=E5=8E=BB=E5=93=AA=E9=87=8C=E5=91=80?=
<30821411+galaxy-sea@users.noreply.github.com>
Date: Tue, 27 Sep 2022 11:01:19 +0800
Subject: [PATCH 3/4] Optimize: InstanceId of PolarisRegistration and
PolarisServiceRegistry (#610)
---
.../PolarisAutoServiceRegistration.java | 7 +++----
.../polaris/registry/PolarisRegistration.java | 15 ++++++++++++++-
.../registry/PolarisServiceRegistry.java | 17 +++++++++--------
.../PolarisAutoServiceRegistrationTest.java | 5 ++---
.../common/pojo/PolarisServiceInstance.java | 4 ++--
5 files changed, 30 insertions(+), 18 deletions(-)
diff --git a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/PolarisAutoServiceRegistration.java b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/PolarisAutoServiceRegistration.java
index 27747c347..9ce4456ad 100644
--- a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/PolarisAutoServiceRegistration.java
+++ b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/PolarisAutoServiceRegistration.java
@@ -22,22 +22,21 @@ import org.slf4j.LoggerFactory;
import org.springframework.cloud.client.serviceregistry.AbstractAutoServiceRegistration;
import org.springframework.cloud.client.serviceregistry.AutoServiceRegistrationProperties;
-import org.springframework.cloud.client.serviceregistry.Registration;
import org.springframework.cloud.client.serviceregistry.ServiceRegistry;
import org.springframework.util.StringUtils;
/**
* Auto service registration of Polaris.
*
- * @author Haotian Zhang, Andrew Shan, Jie Cheng
+ * @author Haotian Zhang, Andrew Shan, Jie Cheng, changjin wei(魏昌进)
*/
-public class PolarisAutoServiceRegistration extends AbstractAutoServiceRegistration {
+public class PolarisAutoServiceRegistration extends AbstractAutoServiceRegistration {
private static final Logger LOGGER = LoggerFactory.getLogger(PolarisAutoServiceRegistration.class);
private final PolarisRegistration registration;
- public PolarisAutoServiceRegistration(ServiceRegistry serviceRegistry,
+ public PolarisAutoServiceRegistration(ServiceRegistry serviceRegistry,
AutoServiceRegistrationProperties autoServiceRegistrationProperties, PolarisRegistration registration) {
super(serviceRegistry, autoServiceRegistrationProperties);
this.registration = registration;
diff --git a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/PolarisRegistration.java b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/PolarisRegistration.java
index 799096a2a..7ff1c2e39 100644
--- a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/PolarisRegistration.java
+++ b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/PolarisRegistration.java
@@ -36,7 +36,7 @@ import org.springframework.util.CollectionUtils;
/**
* Registration object of Polaris.
*
- * @author Haotian Zhang, Andrew Shan, Jie Cheng
+ * @author Haotian Zhang, Andrew Shan, Jie Cheng, changjin wei(魏昌进)
*/
public class PolarisRegistration implements Registration {
@@ -55,6 +55,8 @@ public class PolarisRegistration implements Registration {
private String host;
+ private String instanceId;
+
public PolarisRegistration(
PolarisDiscoveryProperties polarisDiscoveryProperties,
@Nullable ConsulContextProperties consulContextProperties,
@@ -120,6 +122,15 @@ public class PolarisRegistration implements Registration {
return polarisDiscoveryProperties;
}
+ @Override
+ public String getInstanceId() {
+ return instanceId;
+ }
+
+ protected void setInstanceId(String instanceId) {
+ this.instanceId = instanceId;
+ }
+
public boolean isRegisterEnabled() {
boolean registerEnabled = false;
@@ -141,6 +152,8 @@ public class PolarisRegistration implements Registration {
", polarisContext=" + polarisContext +
", staticMetadataManager=" + staticMetadataManager +
", metadata=" + metadata +
+ ", host='" + host + '\'' +
+ ", instanceId='" + instanceId + '\'' +
'}';
}
}
diff --git a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/PolarisServiceRegistry.java b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/PolarisServiceRegistry.java
index 5a78e913b..e27bb27b2 100644
--- a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/PolarisServiceRegistry.java
+++ b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/PolarisServiceRegistry.java
@@ -31,6 +31,7 @@ import com.tencent.polaris.api.pojo.Instance;
import com.tencent.polaris.api.rpc.InstanceDeregisterRequest;
import com.tencent.polaris.api.rpc.InstanceHeartbeatRequest;
import com.tencent.polaris.api.rpc.InstanceRegisterRequest;
+import com.tencent.polaris.api.rpc.InstanceRegisterResponse;
import com.tencent.polaris.api.rpc.InstancesResponse;
import com.tencent.polaris.client.util.NamedThreadFactory;
import org.apache.commons.lang.StringUtils;
@@ -38,7 +39,6 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
-import org.springframework.cloud.client.serviceregistry.Registration;
import org.springframework.cloud.client.serviceregistry.ServiceRegistry;
import static java.util.concurrent.TimeUnit.SECONDS;
@@ -47,9 +47,9 @@ import static org.springframework.util.ReflectionUtils.rethrowRuntimeException;
/**
* Service registry of Polaris.
*
- * @author Haotian Zhang, Andrew Shan, Jie Cheng
+ * @author Haotian Zhang, Andrew Shan, Jie Cheng, changjin wei(魏昌进)
*/
-public class PolarisServiceRegistry implements ServiceRegistry {
+public class PolarisServiceRegistry implements ServiceRegistry {
private static final Logger LOGGER = LoggerFactory.getLogger(PolarisServiceRegistry.class);
@@ -78,7 +78,7 @@ public class PolarisServiceRegistry implements ServiceRegistry {
}
@Override
- public void register(Registration registration) {
+ public void register(PolarisRegistration registration) {
if (StringUtils.isBlank(registration.getServiceId())) {
LOGGER.warn("No service to register for polaris client...");
@@ -103,7 +103,8 @@ public class PolarisServiceRegistry implements ServiceRegistry {
instanceRegisterRequest.setVersion(polarisDiscoveryProperties.getVersion());
try {
ProviderAPI providerClient = polarisDiscoveryHandler.getProviderAPI();
- providerClient.register(instanceRegisterRequest);
+ InstanceRegisterResponse instanceRegisterResponse = providerClient.register(instanceRegisterRequest);
+ registration.setInstanceId(instanceRegisterResponse.getInstanceId());
LOGGER.info("polaris registry, {} {} {}:{} {} register finished", polarisDiscoveryProperties.getNamespace(),
registration.getServiceId(), registration.getHost(), registration.getPort(),
staticMetadataManager.getMergedStaticMetadata());
@@ -122,7 +123,7 @@ public class PolarisServiceRegistry implements ServiceRegistry {
}
@Override
- public void deregister(Registration registration) {
+ public void deregister(PolarisRegistration registration) {
LOGGER.info("De-registering from Polaris Server now...");
if (StringUtils.isEmpty(registration.getServiceId())) {
@@ -158,12 +159,12 @@ public class PolarisServiceRegistry implements ServiceRegistry {
}
@Override
- public void setStatus(Registration registration, String status) {
+ public void setStatus(PolarisRegistration registration, String status) {
}
@Override
- public Object getStatus(Registration registration) {
+ public Object getStatus(PolarisRegistration registration) {
String serviceName = registration.getServiceId();
InstancesResponse instancesResponse = polarisDiscoveryHandler.getInstances(serviceName);
Instance[] instances = instancesResponse.getInstances();
diff --git a/spring-cloud-starter-tencent-polaris-discovery/src/test/java/com/tencent/cloud/polaris/registry/PolarisAutoServiceRegistrationTest.java b/spring-cloud-starter-tencent-polaris-discovery/src/test/java/com/tencent/cloud/polaris/registry/PolarisAutoServiceRegistrationTest.java
index 1414b3d27..9e4a19cb5 100644
--- a/spring-cloud-starter-tencent-polaris-discovery/src/test/java/com/tencent/cloud/polaris/registry/PolarisAutoServiceRegistrationTest.java
+++ b/spring-cloud-starter-tencent-polaris-discovery/src/test/java/com/tencent/cloud/polaris/registry/PolarisAutoServiceRegistrationTest.java
@@ -25,7 +25,6 @@ import org.mockito.Mock;
import org.mockito.junit.MockitoJUnitRunner;
import org.springframework.cloud.client.serviceregistry.AutoServiceRegistrationProperties;
-import org.springframework.cloud.client.serviceregistry.Registration;
import org.springframework.cloud.client.serviceregistry.ServiceRegistry;
import org.springframework.context.ApplicationContext;
import org.springframework.core.env.Environment;
@@ -48,7 +47,7 @@ import static org.mockito.Mockito.doReturn;
public class PolarisAutoServiceRegistrationTest {
@Mock
- private ServiceRegistry serviceRegistry;
+ private ServiceRegistry serviceRegistry;
@Mock
private AutoServiceRegistrationProperties autoServiceRegistrationProperties;
@@ -71,7 +70,7 @@ public class PolarisAutoServiceRegistrationTest {
public void setUp() {
doReturn(polarisDiscoveryProperties).when(registration).getPolarisProperties();
- doNothing().when(serviceRegistry).register(nullable(Registration.class));
+ doNothing().when(serviceRegistry).register(nullable(PolarisRegistration.class));
polarisAutoServiceRegistration =
new PolarisAutoServiceRegistration(serviceRegistry, autoServiceRegistrationProperties, registration);
diff --git a/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/pojo/PolarisServiceInstance.java b/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/pojo/PolarisServiceInstance.java
index 787abe3bf..d6abcdf69 100644
--- a/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/pojo/PolarisServiceInstance.java
+++ b/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/pojo/PolarisServiceInstance.java
@@ -29,7 +29,7 @@ import org.springframework.cloud.client.ServiceInstance;
/**
* Polaris's implementation of {@link ServiceInstance}.
*
- * @author Haotian Zhang
+ * @author Haotian Zhang, changjin wei(魏昌进)
*/
public class PolarisServiceInstance implements ServiceInstance {
@@ -56,7 +56,7 @@ public class PolarisServiceInstance implements ServiceInstance {
@Override
public String getInstanceId() {
- return ServiceInstance.super.getInstanceId();
+ return instance.getId();
}
@Override
From e06a0184d6f2b1bc4aff6fb8ce3aaf574ee60db1 Mon Sep 17 00:00:00 2001
From: liaochuntao
Date: Tue, 27 Sep 2022 11:13:34 +0800
Subject: [PATCH 4/4] [ISSUE #563] fix pr #606 cause ci fail (#613)
---
CHANGELOG.md | 1 +
.../core/DecodeTransferMetadataReactiveFilter.java | 2 +-
.../core/DecodeTransferMetadataServletFilter.java | 2 +-
.../metadata/core/EncodeTransferMedataScgFilter.java | 2 +-
.../cloud/common/metadata/MetadataContextHolder.java | 6 +++++-
.../cloud/common/metadata/StaticMetadataManager.java | 8 ++++----
6 files changed, 13 insertions(+), 8 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index f879f31d0..957a8077a 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -7,3 +7,4 @@
- [Optimize: optimize configuration conditional & optimize config data tips](https://github.com/Tencent/spring-cloud-tencent/pull/603)
- [Automatically transmit some headers specified by a environment varaible that directly defines header keys.](https://github.com/Tencent/spring-cloud-tencent/pull/606)
- [Optimize: Maybe remove Chinese characters](https://github.com/Tencent/spring-cloud-tencent/pull/607)
+- [ fix pr #606 cause ci fail](https://github.com/Tencent/spring-cloud-tencent/pull/613)
\ No newline at end of file
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 104af37b6..cd6453c69 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
@@ -104,7 +104,7 @@ public class DecodeTransferMetadataReactiveFilter implements WebFilter, Ordered
.getFragmentContext(FRAGMENT_RAW_TRANSHEADERS);
if (!CollectionUtils.isEmpty(transHeaderMetadata)) {
Optional transHeaders = transHeaderMetadata.keySet().stream().findFirst();
- String[] transHeaderArray = transHeaders.get().split(";");
+ String[] transHeaderArray = transHeaders.get().split(",");
HttpHeaders headers = serverHttpRequest.getHeaders();
Set headerKeys = headers.keySet();
Iterator iterator = headerKeys.iterator();
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 cdf1f8e4e..83dce6bbd 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
@@ -91,7 +91,7 @@ public class DecodeTransferMetadataServletFilter extends OncePerRequestFilter {
.getFragmentContext(FRAGMENT_RAW_TRANSHEADERS);
if (!CollectionUtils.isEmpty(transHeaderMetadata)) {
Optional transHeaders = transHeaderMetadata.keySet().stream().findFirst();
- String[] transHeaderArray = transHeaders.get().split(";");
+ String[] transHeaderArray = transHeaders.get().split(",");
Enumeration httpHeaders = httpServletRequest.getHeaderNames();
while (httpHeaders.hasMoreElements()) {
String httpHeader = httpHeaders.nextElement();
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 bd6b07ab2..97db4fb6c 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
@@ -102,7 +102,7 @@ public class EncodeTransferMedataScgFilter implements GlobalFilter, Ordered {
.getFragmentContext(FRAGMENT_RAW_TRANSHEADERS);
if (!CollectionUtils.isEmpty(transHeaderMetadata)) {
Optional transHeaders = transHeaderMetadata.keySet().stream().findFirst();
- String[] transHeaderArray = transHeaders.get().split(";");
+ String[] transHeaderArray = transHeaders.get().split(",");
HttpHeaders headers = serverHttpRequest.getHeaders();
Set headerKeys = headers.keySet();
Iterator iterator = headerKeys.iterator();
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 3fe11f38e..60983ef69 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
@@ -26,6 +26,7 @@ import com.tencent.cloud.common.metadata.config.MetadataLocalProperties;
import com.tencent.cloud.common.util.ApplicationContextAwareUtils;
import org.springframework.util.CollectionUtils;
+import org.springframework.util.StringUtils;
import static com.tencent.cloud.common.metadata.MetadataContext.FRAGMENT_DISPOSABLE;
import static com.tencent.cloud.common.metadata.MetadataContext.FRAGMENT_RAW_TRANSHEADERS;
@@ -68,7 +69,10 @@ public final class MetadataContextHolder {
MetadataContext metadataContext = new MetadataContext();
metadataContext.putFragmentContext(FRAGMENT_TRANSITIVE, staticMetadataManager.getMergedStaticTransitiveMetadata());
metadataContext.putFragmentContext(FRAGMENT_DISPOSABLE, staticMetadataManager.getMergedStaticDisposableMetadata());
- metadataContext.putContext(FRAGMENT_RAW_TRANSHEADERS, staticMetadataManager.getEnvTransHeaderMetadata(), "");
+
+ if (StringUtils.hasText(staticMetadataManager.getTransHeaderFromEnv())) {
+ metadataContext.putContext(FRAGMENT_RAW_TRANSHEADERS, staticMetadataManager.getTransHeaderFromEnv(), "");
+ }
METADATA_CONTEXT.set(metadataContext);
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 b983bc906..7c38ed2ec 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
@@ -60,7 +60,7 @@ public class StaticMetadataManager {
* The value mapped by this key was specified by user.
* This is configured in environment variables.
*/
- private static final String ENV_METADATA_CONTENT_RAW_TRANSHEADERS = "SCT_METADATA_CONTENT_RAW_TRANSHEADERS";
+ private static final String ENV_TRAFFIC_CONTENT_RAW_TRANSHEADERS = "SCT_TRAFFIC_CONTENT_RAW_TRANSHEADERS";
private static final String ENV_METADATA_ZONE = "SCT_METADATA_ZONE";
private static final String ENV_METADATA_REGION = "SCT_METADATA_REGION";
private static final String ENV_METADATA_CAMPUS = "SCT_METADATA_CAMPUS";
@@ -107,7 +107,7 @@ public class StaticMetadataManager {
if (StringUtils.isNotBlank(key) && key.startsWith(ENV_METADATA_PREFIX)
&& !key.equals(ENV_METADATA_CONTENT_TRANSITIVE)) {
String sourceKey = "";
- if (key.equals(ENV_METADATA_CONTENT_RAW_TRANSHEADERS)) {
+ if (key.equals(ENV_TRAFFIC_CONTENT_RAW_TRANSHEADERS)) {
sourceKey = key;
}
else {
@@ -282,8 +282,8 @@ public class StaticMetadataManager {
return envMetadata;
}
- public String getEnvTransHeaderMetadata() {
- return envMetadata.get(ENV_METADATA_CONTENT_RAW_TRANSHEADERS);
+ public String getTransHeaderFromEnv() {
+ return envMetadata.get(ENV_TRAFFIC_CONTENT_RAW_TRANSHEADERS);
}
public Map getEnvTransitiveMetadata() {