Merge branch '2.4.x'

Closes gh-24651
This commit is contained in:
Madhura Bhave 2021-01-05 10:49:17 -08:00
commit f8cc7180e5
3 changed files with 23 additions and 3 deletions

View File

@ -1,5 +1,5 @@
/*
* Copyright 2012-2020 the original author or authors.
* Copyright 2012-2021 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -348,7 +348,9 @@ class ConfigDataEnvironment {
ConfigDataActivationContext activationContext) {
Set<ConfigDataLocation> mandatoryLocations = new LinkedHashSet<>();
for (ConfigDataEnvironmentContributor contributor : contributors) {
mandatoryLocations.addAll(getMandatoryImports(contributor));
if (contributor.isActive(activationContext)) {
mandatoryLocations.addAll(getMandatoryImports(contributor));
}
}
for (ConfigDataEnvironmentContributor contributor : contributors) {
if (contributor.getLocation() != null) {

View File

@ -1,5 +1,5 @@
/*
* Copyright 2012-2020 the original author or authors.
* Copyright 2012-2021 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -186,6 +186,21 @@ class ConfigDataEnvironmentPostProcessorIntegrationTests {
assertThat(property).isEqualTo("frompropertiesfile");
}
@Test
void runWhenProfileSpecificMandatoryLocationDoesNotExistShouldNotFail() {
ConfigurableApplicationContext context = this.application.run("--spring.config.name=testprofiles",
"--spring.config.location=classpath:configdata/profiles/");
String property = context.getEnvironment().getProperty("my.property");
assertThat(property).isEqualTo("fromyamlfile");
}
@Test
void runWhenProfileSpecificMandatoryLocationDoesNotExistShouldFailWhenProfileActive() {
this.application.setAdditionalProfiles("prod");
assertThatExceptionOfType(ConfigDataResourceNotFoundException.class).isThrownBy(() -> this.application
.run("--spring.config.name=testprofiles", "--spring.config.location=classpath:configdata/profiles/"));
}
@Test
void runWhenHasActiveProfilesFromMultipleLocationsActivatesProfileFromOneLocation() {
ConfigurableApplicationContext context = this.application

View File

@ -12,4 +12,7 @@ dev:
spring.config.activate.on-profile: other
my:
property: fromotherprofile
---
spring.config.activate.on-profile: prod
spring.config.import: file:./non-existent.yml