From 1bed7e4c8e02d255e97fe2bbd13946ded8e09f12 Mon Sep 17 00:00:00 2001 From: Ryan Baxter Date: Fri, 30 Oct 2026 14:29:09 -0400 Subject: [PATCH] Include shared application properties for names starting with application in JDBC repository The JDBC 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/JdbcEnvironmentRepository.java | 5 ++--- .../JdbcEnvironmentRepositoryComplianceTests.java | 9 --------- 2 files changed, 2 insertions(+), 12 deletions(-) diff --git a/spring-cloud-config-server/src/main/java/org/springframework/cloud/config/server/environment/JdbcEnvironmentRepository.java b/spring-cloud-config-server/src/main/java/org/springframework/cloud/config/server/environment/JdbcEnvironmentRepository.java index d9295d6d76..fde9f96f6b 100644 --- a/spring-cloud-config-server/src/main/java/org/springframework/cloud/config/server/environment/JdbcEnvironmentRepository.java +++ b/spring-cloud-config-server/src/main/java/org/springframework/cloud/config/server/environment/JdbcEnvironmentRepository.java @@ -106,9 +106,8 @@ public Environment findOne(String application, String profile, String label) { } String[] profiles = StringUtils.commaDelimitedListToStringArray(profile); Environment environment = new Environment(application, profiles, label, null, null); - if (!config.startsWith("application")) { - config = "application," + config; - } + // the shared "application" is always included, duplicates are removed below + config = "application," + config; List applications = new ArrayList<>( new LinkedHashSet<>(Arrays.asList(StringUtils.commaDelimitedListToStringArray(config)))); List envs = new ArrayList<>(new LinkedHashSet<>(Arrays.asList(profiles))); diff --git a/spring-cloud-config-server/src/test/java/org/springframework/cloud/config/server/environment/compliance/JdbcEnvironmentRepositoryComplianceTests.java b/spring-cloud-config-server/src/test/java/org/springframework/cloud/config/server/environment/compliance/JdbcEnvironmentRepositoryComplianceTests.java index 7ae3df9aea..f472bc045c 100644 --- a/spring-cloud-config-server/src/test/java/org/springframework/cloud/config/server/environment/compliance/JdbcEnvironmentRepositoryComplianceTests.java +++ b/spring-cloud-config-server/src/test/java/org/springframework/cloud/config/server/environment/compliance/JdbcEnvironmentRepositoryComplianceTests.java @@ -21,8 +21,6 @@ import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.BeforeAll; -import org.junit.jupiter.api.Disabled; -import org.junit.jupiter.api.Test; import org.springframework.cloud.config.server.environment.EnvironmentRepository; import org.springframework.cloud.config.server.environment.JdbcEnvironmentProperties; @@ -61,13 +59,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 JdbcTemplate jdbc = new JdbcTemplate(database);