From 92f3864c11b6755228c3038ab440d5ec70129f3f Mon Sep 17 00:00:00 2001 From: Ryan Baxter Date: Fri, 30 Oct 2026 14:30:15 -0400 Subject: [PATCH] Include shared application properties for names starting with application in MongoDB repository The MongoDB environment repository skipped the shared application properties when the requested application name started with application, for example applicationfoo. Always add application and let the existing de-duplication handle a request for application itself. Enable the compliance test that covers this. Signed-off-by: Ryan Baxter --- .../server/environment/MongoDbEnvironmentRepository.java | 4 ++-- .../MongoDbEnvironmentRepositoryComplianceTests.java | 9 --------- 2 files changed, 2 insertions(+), 11 deletions(-) diff --git a/spring-cloud-config-server/src/main/java/org/springframework/cloud/config/server/environment/MongoDbEnvironmentRepository.java b/spring-cloud-config-server/src/main/java/org/springframework/cloud/config/server/environment/MongoDbEnvironmentRepository.java index 5b37c6b353..8a6858bc0f 100644 --- a/spring-cloud-config-server/src/main/java/org/springframework/cloud/config/server/environment/MongoDbEnvironmentRepository.java +++ b/spring-cloud-config-server/src/main/java/org/springframework/cloud/config/server/environment/MongoDbEnvironmentRepository.java @@ -60,8 +60,8 @@ public Environment findOne(String application, String profile, String label) { String[] profilesArray = StringUtils.commaDelimitedListToStringArray(profile); Environment environment = new Environment(application, profilesArray, label, null, null); - // Prepend "application," to config if not already present - String config = application.startsWith("application") ? application : "application," + application; + // Prepend "application," to config, duplicates are removed below + String config = "application," + application; List applications = Arrays.stream(StringUtils.commaDelimitedListToStringArray(config)) .distinct() diff --git a/spring-cloud-config-server/src/test/java/org/springframework/cloud/config/server/environment/compliance/MongoDbEnvironmentRepositoryComplianceTests.java b/spring-cloud-config-server/src/test/java/org/springframework/cloud/config/server/environment/compliance/MongoDbEnvironmentRepositoryComplianceTests.java index d6bac2d442..23594b118c 100644 --- a/spring-cloud-config-server/src/test/java/org/springframework/cloud/config/server/environment/compliance/MongoDbEnvironmentRepositoryComplianceTests.java +++ b/spring-cloud-config-server/src/test/java/org/springframework/cloud/config/server/environment/compliance/MongoDbEnvironmentRepositoryComplianceTests.java @@ -25,9 +25,7 @@ import org.bson.Document; import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.BeforeAll; -import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Tag; -import org.junit.jupiter.api.Test; import org.testcontainers.junit.jupiter.Container; import org.testcontainers.junit.jupiter.Testcontainers; import org.testcontainers.mongodb.MongoDBContainer; @@ -72,13 +70,6 @@ protected EnvironmentRepositoryFixture fixture() { return this.fixture; } - @Override - @Test - @Disabled("TODO-issue: Shared application properties are skipped when the application name starts with application") - public void applicationNameStartingWithApplicationIncludesSharedFiles() throws Exception { - super.applicationNameStartingWithApplicationIncludesSharedFiles(); - } - static class Fixture implements EnvironmentRepositoryFixture { private final MongoDbEnvironmentProperties properties = new MongoDbEnvironmentProperties();