Only ignore profile activation and inclusion if the property source is profile specific (#2613)

This commit is contained in:
Ryan Baxter
2024-10-31 15:43:09 -04:00
committed by Ryan Baxter
parent 67771717d0
commit 10a3976fd5
2 changed files with 21 additions and 1 deletions

View File

@@ -159,7 +159,6 @@ public class ConfigServerConfigDataLoader implements ConfigDataLoader<ConfigServ
String propertySourceName = propertySource.getName();
List<Option> options = new ArrayList<>();
options.add(Option.IGNORE_IMPORTS);
options.add(Option.IGNORE_PROFILES);
// TODO: the profile is now available on the backend
// in a future minor, add the profile associated with a
// PropertySource see
@@ -180,6 +179,7 @@ public class ConfigServerConfigDataLoader implements ConfigDataLoader<ConfigServ
&& propertySourceName.matches(".*[-,]" + profile + "\\b.*"))) {
// // TODO: switch to Options.with() when implemented
options.add(Option.PROFILE_SPECIFIC);
options.add(Option.IGNORE_PROFILES);
}
}
return ConfigData.Options.of(options.toArray(new Option[0]));

View File

@@ -406,10 +406,16 @@ public class ConfigServerConfigDataLoaderTests {
assertThat(configData.getPropertySources()).hasSize(3);
assertThat(configData.getOptions(configData.getPropertySources().get(0))
.contains(ConfigData.Option.IGNORE_IMPORTS)).isTrue();
assertThat(configData.getOptions(configData.getPropertySources().get(0))
.contains(ConfigData.Option.IGNORE_PROFILES)).isFalse();
assertThat(configData.getOptions(configData.getPropertySources().get(1))
.contains(ConfigData.Option.IGNORE_IMPORTS)).isTrue();
assertThat(configData.getOptions(configData.getPropertySources().get(1))
.contains(ConfigData.Option.IGNORE_PROFILES)).isFalse();
assertThat(configData.getOptions(configData.getPropertySources().get(2))
.contains(ConfigData.Option.IGNORE_IMPORTS)).isTrue();
assertThat(configData.getOptions(configData.getPropertySources().get(2))
.contains(ConfigData.Option.IGNORE_PROFILES)).isFalse();
}
@@ -532,18 +538,32 @@ public class ConfigServerConfigDataLoaderTests {
assertThat(configData.getPropertySources()).hasSize(7);
assertThat(configData.getOptions(configData.getPropertySources().get(0))
.contains(ConfigData.Option.PROFILE_SPECIFIC)).isFalse();
assertThat(configData.getOptions(configData.getPropertySources().get(0))
.contains(ConfigData.Option.IGNORE_PROFILES)).isFalse();
assertThat(configData.getOptions(configData.getPropertySources().get(1))
.contains(ConfigData.Option.PROFILE_SPECIFIC)).isTrue();
assertThat(configData.getOptions(configData.getPropertySources().get(1))
.contains(ConfigData.Option.IGNORE_PROFILES)).isTrue();
assertThat(configData.getOptions(configData.getPropertySources().get(2))
.contains(ConfigData.Option.PROFILE_SPECIFIC)).isFalse();
assertThat(configData.getOptions(configData.getPropertySources().get(2))
.contains(ConfigData.Option.IGNORE_PROFILES)).isFalse();
assertThat(configData.getOptions(configData.getPropertySources().get(3))
.contains(ConfigData.Option.PROFILE_SPECIFIC)).isFalse();
assertThat(configData.getOptions(configData.getPropertySources().get(3))
.contains(ConfigData.Option.IGNORE_PROFILES)).isFalse();
assertThat(configData.getOptions(configData.getPropertySources().get(4))
.contains(ConfigData.Option.PROFILE_SPECIFIC)).isFalse();
assertThat(configData.getOptions(configData.getPropertySources().get(4))
.contains(ConfigData.Option.IGNORE_PROFILES)).isFalse();
assertThat(configData.getOptions(configData.getPropertySources().get(5))
.contains(ConfigData.Option.PROFILE_SPECIFIC)).isFalse();
assertThat(configData.getOptions(configData.getPropertySources().get(5))
.contains(ConfigData.Option.IGNORE_PROFILES)).isFalse();
assertThat(configData.getOptions(configData.getPropertySources().get(6))
.contains(ConfigData.Option.PROFILE_SPECIFIC)).isTrue();
assertThat(configData.getOptions(configData.getPropertySources().get(6))
.contains(ConfigData.Option.IGNORE_PROFILES)).isTrue();
}
@Test