From d1e0dfe64df174ea838b40ab4503ba5f2f9234a3 Mon Sep 17 00:00:00 2001 From: Haotian Zhang <928016560@qq.com> Date: Thu, 6 Jun 2024 16:25:20 +0800 Subject: [PATCH] feat:add Tencent Cloud TSF support. --- .../adapter/PolarisConfigCustomExtensionLayer.java | 2 ++ .../config/adapter/PolarisServiceLoaderUtil.java | 13 +++++++++---- .../PolarisAdaptorTsfConfigAutoConfiguration.java | 11 ----------- .../PolarisAdaptorTsfConfigExtensionLayer.java | 10 ++++++++++ 4 files changed, 21 insertions(+), 15 deletions(-) diff --git a/spring-cloud-starter-tencent-polaris-config/src/main/java/com/tencent/cloud/polaris/config/adapter/PolarisConfigCustomExtensionLayer.java b/spring-cloud-starter-tencent-polaris-config/src/main/java/com/tencent/cloud/polaris/config/adapter/PolarisConfigCustomExtensionLayer.java index 19d873857..4e0465493 100644 --- a/spring-cloud-starter-tencent-polaris-config/src/main/java/com/tencent/cloud/polaris/config/adapter/PolarisConfigCustomExtensionLayer.java +++ b/spring-cloud-starter-tencent-polaris-config/src/main/java/com/tencent/cloud/polaris/config/adapter/PolarisConfigCustomExtensionLayer.java @@ -29,6 +29,8 @@ import org.springframework.core.env.Environment; * @author juanyinyang */ public interface PolarisConfigCustomExtensionLayer { + boolean isEnabled(); + void initRegisterConfig(PolarisConfigPropertyAutoRefresher polarisConfigPropertyAutoRefresher); void initConfigFiles(Environment environment, CompositePropertySource compositePropertySource, ConfigFileService configFileService); diff --git a/spring-cloud-starter-tencent-polaris-config/src/main/java/com/tencent/cloud/polaris/config/adapter/PolarisServiceLoaderUtil.java b/spring-cloud-starter-tencent-polaris-config/src/main/java/com/tencent/cloud/polaris/config/adapter/PolarisServiceLoaderUtil.java index 343a5b319..bf61aac4d 100644 --- a/spring-cloud-starter-tencent-polaris-config/src/main/java/com/tencent/cloud/polaris/config/adapter/PolarisServiceLoaderUtil.java +++ b/spring-cloud-starter-tencent-polaris-config/src/main/java/com/tencent/cloud/polaris/config/adapter/PolarisServiceLoaderUtil.java @@ -30,20 +30,25 @@ import org.slf4j.LoggerFactory; public final class PolarisServiceLoaderUtil { private static final Logger LOGGER = LoggerFactory.getLogger(PolarisServiceLoaderUtil.class); - private PolarisServiceLoaderUtil() { - } // this class provides customized logic for some customers to configure special business group files private static PolarisConfigCustomExtensionLayer polarisConfigCustomExtensionLayer; + static { ServiceLoader polarisConfigCustomExtensionLayerLoader = ServiceLoader.load(PolarisConfigCustomExtensionLayer.class); Iterator polarisConfigCustomExtensionLayerIterator = polarisConfigCustomExtensionLayerLoader.iterator(); // Generally, there is only one implementation class. If there are multiple, the last one is loaded while (polarisConfigCustomExtensionLayerIterator.hasNext()) { - polarisConfigCustomExtensionLayer = polarisConfigCustomExtensionLayerIterator.next(); - LOGGER.info("[SCT Config] PolarisConfigFileLocator init polarisConfigCustomExtensionLayer:{}", polarisConfigCustomExtensionLayer); + PolarisConfigCustomExtensionLayer temp = polarisConfigCustomExtensionLayerIterator.next(); + if (temp.isEnabled()) { + polarisConfigCustomExtensionLayer = temp; + LOGGER.info("[SCT Config] PolarisConfigFileLocator init polarisConfigCustomExtensionLayer:{}", polarisConfigCustomExtensionLayer); + } } } + private PolarisServiceLoaderUtil() { + } + public static PolarisConfigCustomExtensionLayer getPolarisConfigCustomExtensionLayer() { return polarisConfigCustomExtensionLayer; } diff --git a/spring-cloud-starter-tencent-polaris-config/src/main/java/com/tencent/cloud/polaris/config/tsf/PolarisAdaptorTsfConfigAutoConfiguration.java b/spring-cloud-starter-tencent-polaris-config/src/main/java/com/tencent/cloud/polaris/config/tsf/PolarisAdaptorTsfConfigAutoConfiguration.java index bb00cf4f6..fbb1ad02b 100644 --- a/spring-cloud-starter-tencent-polaris-config/src/main/java/com/tencent/cloud/polaris/config/tsf/PolarisAdaptorTsfConfigAutoConfiguration.java +++ b/spring-cloud-starter-tencent-polaris-config/src/main/java/com/tencent/cloud/polaris/config/tsf/PolarisAdaptorTsfConfigAutoConfiguration.java @@ -18,9 +18,7 @@ package com.tencent.cloud.polaris.config.tsf; import com.tencent.cloud.polaris.config.ConditionalOnPolarisConfigEnabled; -import com.tencent.cloud.polaris.config.adapter.PolarisConfigCustomExtensionLayer; import com.tencent.cloud.polaris.config.config.PolarisConfigProperties; -import com.tencent.cloud.polaris.config.tsf.adaptor.PolarisAdaptorTsfConfigExtensionLayer; import com.tencent.cloud.polaris.config.tsf.controller.PolarisAdaptorTsfConfigController; import com.tencent.cloud.polaris.context.tsf.ConditionalOnTsfEnabled; import com.tencent.cloud.polaris.context.tsf.config.TsfCoreProperties; @@ -33,8 +31,6 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import org.springframework.core.Ordered; -import org.springframework.core.annotation.Order; /** * @author juanyinyang @@ -53,13 +49,6 @@ public class PolarisAdaptorTsfConfigAutoConfiguration { "[SCTT Config] PolarisAdaptorTsfConfigAutoConfiguration init set spring.cloud.polaris.config.refresh-type to refresh_context"); } - @Bean - @ConditionalOnMissingBean - @Order(Ordered.HIGHEST_PRECEDENCE) - public PolarisConfigCustomExtensionLayer polarisAdaptorTsfConfigProcessCallback() { - return new PolarisAdaptorTsfConfigExtensionLayer(); - } - @Bean @ConditionalOnMissingBean @ConditionalOnProperty(name = "spring.cloud.consul.config.watch.enabled", matchIfMissing = true) diff --git a/spring-cloud-starter-tencent-polaris-config/src/main/java/com/tencent/cloud/polaris/config/tsf/adaptor/PolarisAdaptorTsfConfigExtensionLayer.java b/spring-cloud-starter-tencent-polaris-config/src/main/java/com/tencent/cloud/polaris/config/tsf/adaptor/PolarisAdaptorTsfConfigExtensionLayer.java index 23c1d420a..94d32cff0 100755 --- a/spring-cloud-starter-tencent-polaris-config/src/main/java/com/tencent/cloud/polaris/config/tsf/adaptor/PolarisAdaptorTsfConfigExtensionLayer.java +++ b/spring-cloud-starter-tencent-polaris-config/src/main/java/com/tencent/cloud/polaris/config/tsf/adaptor/PolarisAdaptorTsfConfigExtensionLayer.java @@ -84,6 +84,16 @@ public class PolarisAdaptorTsfConfigExtensionLayer implements PolarisConfigCusto private PolarisConfigPropertyAutoRefresher polarisConfigPropertyAutoRefresher; + @Override + public boolean isEnabled() { + // tse_polaris_enable + String tsePolarisEnable = System.getenv("tse_polaris_enable"); + if (StringUtils.isBlank(tsePolarisEnable)) { + tsePolarisEnable = System.getProperty("tse_polaris_enable", "false"); + } + return StringUtils.equals(tsePolarisEnable, "true"); + } + /** * @see PolarisConfigCustomExtensionLayer#initConfigFiles(CompositePropertySource, * PolarisPropertySourceManager,