From 14fdd5e5045d44fa5d8a8b48dcf4f9f4bcbbe7fb Mon Sep 17 00:00:00 2001 From: 98001yash Date: Sat, 19 Sep 2026 16:42:39 +0530 Subject: [PATCH] Expose profile metadata in config property sources Signed-off-by: 98001yash --- .../client/ConfigServerConfigDataLoader.java | 55 +++++++++++-------- .../config/environment/PropertySource.java | 21 ++++++- .../ConfigServerConfigDataLoaderTests.java | 31 +++++++++++ .../NativeEnvironmentRepository.java | 10 +++- 4 files changed, 90 insertions(+), 27 deletions(-) diff --git a/spring-cloud-config-client/src/main/java/org/springframework/cloud/config/client/ConfigServerConfigDataLoader.java b/spring-cloud-config-client/src/main/java/org/springframework/cloud/config/client/ConfigServerConfigDataLoader.java index 6f7f804310..2b173d3c72 100644 --- a/spring-cloud-config-client/src/main/java/org/springframework/cloud/config/client/ConfigServerConfigDataLoader.java +++ b/spring-cloud-config-client/src/main/java/org/springframework/cloud/config/client/ConfigServerConfigDataLoader.java @@ -132,14 +132,17 @@ public ConfigData doLoad(ConfigDataLoaderContext context, ConfigServerConfigData log(result); // result.getPropertySources() can be null if using xml + Map, String> propertySourceProfiles = new HashMap<>(); if (result.getPropertySources() != null) { for (org.springframework.cloud.config.environment.PropertySource source : result .getPropertySources()) { @SuppressWarnings("unchecked") Map map = translateOrigins(source.getName(), (Map) source.getSource()); - propertySources.add(0, - new OriginTrackedMapPropertySource("configserver:" + source.getName(), map, true)); + OriginTrackedMapPropertySource propertySource = new OriginTrackedMapPropertySource( + "configserver:" + source.getName(), map, true); + propertySources.add(0, propertySource); + propertySourceProfiles.put(propertySource, source.getProfile()); } } @@ -165,31 +168,37 @@ else if (ALL_OPTIONS.size() > 2) { // boot 2.4.5+ return new ConfigData(propertySources, propertySource -> { String propertySourceName = propertySource.getName(); + String profile = propertySourceProfiles.get(propertySource); List