feat:add Tencent Cloud TSF support.

pull/1317/head
Haotian Zhang 1 year ago
parent 3b7fea111a
commit d1e0dfe64d

@ -29,6 +29,8 @@ import org.springframework.core.env.Environment;
* @author juanyinyang * @author juanyinyang
*/ */
public interface PolarisConfigCustomExtensionLayer { public interface PolarisConfigCustomExtensionLayer {
boolean isEnabled();
void initRegisterConfig(PolarisConfigPropertyAutoRefresher polarisConfigPropertyAutoRefresher); void initRegisterConfig(PolarisConfigPropertyAutoRefresher polarisConfigPropertyAutoRefresher);
void initConfigFiles(Environment environment, CompositePropertySource compositePropertySource, ConfigFileService configFileService); void initConfigFiles(Environment environment, CompositePropertySource compositePropertySource, ConfigFileService configFileService);

@ -30,20 +30,25 @@ import org.slf4j.LoggerFactory;
public final class PolarisServiceLoaderUtil { public final class PolarisServiceLoaderUtil {
private static final Logger LOGGER = LoggerFactory.getLogger(PolarisServiceLoaderUtil.class); 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 // this class provides customized logic for some customers to configure special business group files
private static PolarisConfigCustomExtensionLayer polarisConfigCustomExtensionLayer; private static PolarisConfigCustomExtensionLayer polarisConfigCustomExtensionLayer;
static { static {
ServiceLoader<PolarisConfigCustomExtensionLayer> polarisConfigCustomExtensionLayerLoader = ServiceLoader.load(PolarisConfigCustomExtensionLayer.class); ServiceLoader<PolarisConfigCustomExtensionLayer> polarisConfigCustomExtensionLayerLoader = ServiceLoader.load(PolarisConfigCustomExtensionLayer.class);
Iterator<PolarisConfigCustomExtensionLayer> polarisConfigCustomExtensionLayerIterator = polarisConfigCustomExtensionLayerLoader.iterator(); Iterator<PolarisConfigCustomExtensionLayer> polarisConfigCustomExtensionLayerIterator = polarisConfigCustomExtensionLayerLoader.iterator();
// Generally, there is only one implementation class. If there are multiple, the last one is loaded // Generally, there is only one implementation class. If there are multiple, the last one is loaded
while (polarisConfigCustomExtensionLayerIterator.hasNext()) { while (polarisConfigCustomExtensionLayerIterator.hasNext()) {
polarisConfigCustomExtensionLayer = polarisConfigCustomExtensionLayerIterator.next(); PolarisConfigCustomExtensionLayer temp = polarisConfigCustomExtensionLayerIterator.next();
LOGGER.info("[SCT Config] PolarisConfigFileLocator init polarisConfigCustomExtensionLayer:{}", polarisConfigCustomExtensionLayer); if (temp.isEnabled()) {
polarisConfigCustomExtensionLayer = temp;
LOGGER.info("[SCT Config] PolarisConfigFileLocator init polarisConfigCustomExtensionLayer:{}", polarisConfigCustomExtensionLayer);
}
} }
} }
private PolarisServiceLoaderUtil() {
}
public static PolarisConfigCustomExtensionLayer getPolarisConfigCustomExtensionLayer() { public static PolarisConfigCustomExtensionLayer getPolarisConfigCustomExtensionLayer() {
return polarisConfigCustomExtensionLayer; return polarisConfigCustomExtensionLayer;
} }

@ -18,9 +18,7 @@
package com.tencent.cloud.polaris.config.tsf; package com.tencent.cloud.polaris.config.tsf;
import com.tencent.cloud.polaris.config.ConditionalOnPolarisConfigEnabled; 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.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.config.tsf.controller.PolarisAdaptorTsfConfigController;
import com.tencent.cloud.polaris.context.tsf.ConditionalOnTsfEnabled; import com.tencent.cloud.polaris.context.tsf.ConditionalOnTsfEnabled;
import com.tencent.cloud.polaris.context.tsf.config.TsfCoreProperties; 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.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import org.springframework.core.Ordered;
import org.springframework.core.annotation.Order;
/** /**
* @author juanyinyang * @author juanyinyang
@ -53,13 +49,6 @@ public class PolarisAdaptorTsfConfigAutoConfiguration {
"[SCTT Config] PolarisAdaptorTsfConfigAutoConfiguration init set spring.cloud.polaris.config.refresh-type to refresh_context"); "[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 @Bean
@ConditionalOnMissingBean @ConditionalOnMissingBean
@ConditionalOnProperty(name = "spring.cloud.consul.config.watch.enabled", matchIfMissing = true) @ConditionalOnProperty(name = "spring.cloud.consul.config.watch.enabled", matchIfMissing = true)

@ -84,6 +84,16 @@ public class PolarisAdaptorTsfConfigExtensionLayer implements PolarisConfigCusto
private PolarisConfigPropertyAutoRefresher polarisConfigPropertyAutoRefresher; 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, * @see PolarisConfigCustomExtensionLayer#initConfigFiles(CompositePropertySource,
* PolarisPropertySourceManager, * PolarisPropertySourceManager,

Loading…
Cancel
Save