增加保存北极星cache key集合

pull/1095/head
yangjuanying 2 years ago
parent 61269754b2
commit 35db409c0d

@ -20,6 +20,7 @@ package com.tencent.cloud.polaris.config.adapter;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.HashSet;
import java.util.Iterator; import java.util.Iterator;
import java.util.LinkedList; import java.util.LinkedList;
import java.util.List; import java.util.List;
@ -29,6 +30,7 @@ import java.util.concurrent.ConcurrentHashMap;
import com.tencent.cloud.polaris.config.config.ConfigFileGroup; import com.tencent.cloud.polaris.config.config.ConfigFileGroup;
import com.tencent.cloud.polaris.config.config.PolarisConfigProperties; import com.tencent.cloud.polaris.config.config.PolarisConfigProperties;
import com.tencent.cloud.polaris.config.config.cache.PolarisPropertyCache;
import com.tencent.cloud.polaris.config.enums.ConfigFileFormat; import com.tencent.cloud.polaris.config.enums.ConfigFileFormat;
import com.tencent.cloud.polaris.context.config.PolarisContextProperties; import com.tencent.cloud.polaris.context.config.PolarisContextProperties;
import com.tencent.polaris.configuration.api.core.ConfigFileMetadata; import com.tencent.polaris.configuration.api.core.ConfigFileMetadata;
@ -94,20 +96,24 @@ public class PolarisConfigFileLocator implements PropertySourceLocator {
@Override @Override
public PropertySource<?> locate(Environment environment) { public PropertySource<?> locate(Environment environment) {
CompositePropertySource compositePropertySource = new CompositePropertySource(POLARIS_CONFIG_PROPERTY_SOURCE_NAME); CompositePropertySource compositePropertySource = new CompositePropertySource(POLARIS_CONFIG_PROPERTY_SOURCE_NAME);
try {
// load custom config extension files // load custom config extension files
initCustomPolarisConfigExtensionFiles(compositePropertySource); initCustomPolarisConfigExtensionFiles(compositePropertySource);
// load spring boot default config files // load spring boot default config files
initInternalConfigFiles(compositePropertySource); initInternalConfigFiles(compositePropertySource);
// load custom config files
// load custom config files List<ConfigFileGroup> configFileGroups = polarisConfigProperties.getGroups();
List<ConfigFileGroup> configFileGroups = polarisConfigProperties.getGroups(); if (CollectionUtils.isEmpty(configFileGroups)) {
if (CollectionUtils.isEmpty(configFileGroups)) { return compositePropertySource;
}
initCustomPolarisConfigFiles(compositePropertySource, configFileGroups);
return compositePropertySource; return compositePropertySource;
} }
initCustomPolarisConfigFiles(compositePropertySource, configFileGroups); finally {
PolarisPropertyCache.getInstance().clear();
return compositePropertySource; PolarisPropertyCache.getInstance().getCache()
.addAll(new HashSet<>(Arrays.asList(compositePropertySource.getPropertyNames())));
}
} }
private void initCustomPolarisConfigExtensionFiles(CompositePropertySource compositePropertySource) { private void initCustomPolarisConfigExtensionFiles(CompositePropertySource compositePropertySource) {

@ -0,0 +1,40 @@
/*
* Copyright (c) 2023 www.tencent.com.
* All Rights Reserved.
* This program is the confidential and proprietary information of
* www.tencent.com ("Confidential Information"). You shall not disclose such
* Confidential Information and shall use it only in accordance with
* the terms of the license agreement you entered into with www.tencent.com.
*/
package com.tencent.cloud.polaris.config.config.cache;
import java.util.HashSet;
import java.util.Set;
/**
* @author juanyinyang
* @Date 202388 4:56:18
*/
public final class PolarisPropertyCache {
private static final PolarisPropertyCache instance = new PolarisPropertyCache();
private final Set<String> cache = new HashSet<>();
private PolarisPropertyCache() {
}
public static PolarisPropertyCache getInstance() {
return instance;
}
public Set<String> getCache() {
return cache;
}
public void clear() {
cache.clear();
}
}
Loading…
Cancel
Save