From 28f2b7af3b48556d02adde87fd11f469ec81aaa6 Mon Sep 17 00:00:00 2001 From: Ryan Baxter Date: Mon, 25 Nov 2024 14:41:27 -0500 Subject: [PATCH] Reverse app names when fetching s3 data (#2652) This matches the behavior of other EnvironmentRepositories like Git. #Fixes #2642 --- .../server/environment/AwsS3EnvironmentRepository.java | 1 + .../server/environment/AwsS3EnvironmentRepositoryTests.java | 6 ++++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/spring-cloud-config-server/src/main/java/org/springframework/cloud/config/server/environment/AwsS3EnvironmentRepository.java b/spring-cloud-config-server/src/main/java/org/springframework/cloud/config/server/environment/AwsS3EnvironmentRepository.java index 777273a6..441d4bc9 100644 --- a/spring-cloud-config-server/src/main/java/org/springframework/cloud/config/server/environment/AwsS3EnvironmentRepository.java +++ b/spring-cloud-config-server/src/main/java/org/springframework/cloud/config/server/environment/AwsS3EnvironmentRepository.java @@ -86,6 +86,7 @@ public class AwsS3EnvironmentRepository implements EnvironmentRepository, Ordere String[] profileArray = parseProfiles(profiles); List apps = Arrays.asList(StringUtils.commaDelimitedListToStringArray(application.replace(" ", ""))); + Collections.reverse(apps); if (!apps.contains(serverProperties.getDefaultApplicationName())) { apps = new ArrayList<>(apps); apps.add(serverProperties.getDefaultApplicationName()); diff --git a/spring-cloud-config-server/src/test/java/org/springframework/cloud/config/server/environment/AwsS3EnvironmentRepositoryTests.java b/spring-cloud-config-server/src/test/java/org/springframework/cloud/config/server/environment/AwsS3EnvironmentRepositoryTests.java index 56d802d0..99a17ea1 100644 --- a/spring-cloud-config-server/src/test/java/org/springframework/cloud/config/server/environment/AwsS3EnvironmentRepositoryTests.java +++ b/spring-cloud-config-server/src/test/java/org/springframework/cloud/config/server/environment/AwsS3EnvironmentRepositoryTests.java @@ -257,10 +257,12 @@ public class AwsS3EnvironmentRepositoryTests { @Test public void findWithMultipleApplicationAllFound() throws UnsupportedEncodingException { - putFiles("foo-profile1.yml", jsonContent); - String versionId = putFiles("bar-profile1.yml", jsonContent); + String versionId = putFiles("foo-profile1.yml", jsonContent); + putFiles("bar-profile1.yml", jsonContent); final Environment env = envRepo.findOne("foo,bar", "profile1", null); + assertThat(env.getPropertySources().get(0).getName()).isEqualTo("s3:bar-profile1"); + assertThat(env.getPropertySources().get(1).getName()).isEqualTo("s3:foo-profile1"); assertExpectedEnvironment(env, "foo,bar", null, versionId, 2, "profile1");