Skip to content

Commit

Permalink
fix:fix system env variable read bug.
Browse files Browse the repository at this point in the history
  • Loading branch information
SkyeBeFreeman committed Oct 12, 2023
1 parent bdf2b64 commit eea8d3b
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 3 deletions.
3 changes: 2 additions & 1 deletion changes/changes-1.12.0.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,4 +27,5 @@
- fix:upgrade spring version.
- fix:Update README-zh.md
- feature: support Polaris configuration center extension plugin interface and support dynamic modification of log
levels.
levels.
- fix:fix system env variable read bug.
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,8 @@
import com.google.common.collect.Maps;
import com.tencent.cloud.polaris.config.spring.event.ConfigChangeSpringEvent;
import com.tencent.polaris.configuration.api.core.ConfigPropertyChangeInfo;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import org.springframework.boot.context.event.ApplicationStartedEvent;
import org.springframework.cloud.context.environment.EnvironmentChangeEvent;
Expand All @@ -37,6 +39,7 @@
import org.springframework.core.env.ConfigurableEnvironment;
import org.springframework.core.env.Environment;
import org.springframework.core.env.MutablePropertySources;
import org.springframework.core.env.StandardEnvironment;
import org.springframework.lang.NonNull;

import static com.tencent.cloud.polaris.config.listener.PolarisConfigListenerContext.fireConfigChange;
Expand All @@ -50,6 +53,8 @@
*/
public final class PolarisConfigChangeEventListener implements ApplicationListener<ApplicationEvent>, ApplicationEventPublisherAware {

private static final Logger LOG = LoggerFactory.getLogger(PolarisConfigChangeEventListener.class);

private static final AtomicBoolean started = new AtomicBoolean();

private ApplicationEventPublisher eventPublisher;
Expand Down Expand Up @@ -96,12 +101,23 @@ private Map<String, Object> loadEnvironmentProperties(ConfigurableEnvironment en
Map<String, Object> ret = Maps.newHashMap();
MutablePropertySources sources = environment.getPropertySources();
sources.iterator().forEachRemaining(propertySource -> {
// Don't read system env variable.
if (StandardEnvironment.SYSTEM_ENVIRONMENT_PROPERTY_SOURCE_NAME.equals(propertySource.getName())) {
return;
}

Object o = propertySource.getSource();
if (o instanceof Map) {
for (Map.Entry<String, Object> entry : ((Map<String, Object>) o).entrySet()) {
String key = entry.getKey();
String value = environment.getProperty(key);
ret.put(key, value);
try {
String value = environment.getProperty(key);
ret.put(key, value);
}
catch (Exception e) {
LOG.warn("Read property from {} with key {} failed.", propertySource.getName(), key, e);
}

}
}
else if (o instanceof Collection) {
Expand Down

0 comments on commit eea8d3b

Please sign in to comment.