commit
f8cc7180e5
|
@ -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) {
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
Loading…
Reference in New Issue