From 6ec9c432cb2c02840b85fdd8bcd0859eabc0ba46 Mon Sep 17 00:00:00 2001 From: Ryan Baxter Date: Thu, 4 May 2023 15:31:48 -0400 Subject: [PATCH] Support for profile specific config data loading (#2260) Fixes #1922 Co-authored-by: Ryan Baxter <524254+ryanjbaxter@users.noreply.github.com> --- .../client/ConfigServerConfigDataLoader.java | 64 +++++---- ...onfigServerConfigDataLocationResolver.java | 5 +- .../ConfigServerConfigDataResource.java | 17 ++- .../ConfigServicePropertySourceLocator.java | 31 +++++ ...nfigDataCustomizationIntegrationTests.java | 21 +-- .../ConfigServerConfigDataLoaderTests.java | 124 ++++++++++++++++++ ...ServerConfigDataLocationResolverTests.java | 48 +++++-- 7 files changed, 267 insertions(+), 43 deletions(-) create mode 100644 spring-cloud-config-client/src/test/java/org/springframework/cloud/config/client/ConfigServerConfigDataLoaderTests.java 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 ce1b9d65..04cff2e9 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 @@ -24,12 +24,12 @@ import java.util.HashMap; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; import org.apache.commons.logging.Log; import org.springframework.boot.context.config.ConfigData; import org.springframework.boot.context.config.ConfigData.Option; -import org.springframework.boot.context.config.ConfigData.Options; import org.springframework.boot.context.config.ConfigDataLoader; import org.springframework.boot.context.config.ConfigDataLoaderContext; import org.springframework.boot.context.properties.bind.Binder; @@ -49,6 +49,7 @@ import org.springframework.http.HttpMethod; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; +import org.springframework.util.ObjectUtils; import org.springframework.util.StringUtils; import org.springframework.web.client.HttpClientErrorException; import org.springframework.web.client.HttpServerErrorException; @@ -103,6 +104,7 @@ public class ConfigServerConfigDataLoader implements ConfigDataLoader> propertySources = new ArrayList<>(); Exception error = null; @@ -151,27 +153,15 @@ public class ConfigServerConfigDataLoader implements ConfigDataLoader 2) { // boot 2.4.5+ - return new ConfigData(propertySources, propertySource -> { - String propertySourceName = propertySource.getName(); - List