Merge branch '2.0.x'
This commit is contained in:
commit
d47e7ebb5b
|
|
@ -22,6 +22,7 @@ import java.util.Arrays;
|
|||
import java.util.Collections;
|
||||
import java.util.Deque;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.LinkedHashSet;
|
||||
import java.util.LinkedList;
|
||||
|
|
@ -656,27 +657,35 @@ public class ConfigFileApplicationListener
|
|||
|
||||
private void addLoadedPropertySources() {
|
||||
MutablePropertySources destination = this.environment.getPropertySources();
|
||||
String lastAdded = null;
|
||||
List<MutablePropertySources> loaded = new ArrayList<>(this.loaded.values());
|
||||
Collections.reverse(loaded);
|
||||
String lastAdded = null;
|
||||
Set<String> added = new HashSet<>();
|
||||
for (MutablePropertySources sources : loaded) {
|
||||
for (PropertySource<?> source : sources) {
|
||||
if (lastAdded == null) {
|
||||
if (destination.contains(DEFAULT_PROPERTIES)) {
|
||||
destination.addBefore(DEFAULT_PROPERTIES, source);
|
||||
}
|
||||
else {
|
||||
destination.addLast(source);
|
||||
}
|
||||
if (added.add(source.getName())) {
|
||||
addLoadedPropertySource(destination, lastAdded, source);
|
||||
lastAdded = source.getName();
|
||||
}
|
||||
else {
|
||||
destination.addAfter(lastAdded, source);
|
||||
}
|
||||
lastAdded = source.getName();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void addLoadedPropertySource(MutablePropertySources destination,
|
||||
String lastAdded, PropertySource<?> source) {
|
||||
if (lastAdded == null) {
|
||||
if (destination.contains(DEFAULT_PROPERTIES)) {
|
||||
destination.addBefore(DEFAULT_PROPERTIES, source);
|
||||
}
|
||||
else {
|
||||
destination.addLast(source);
|
||||
}
|
||||
}
|
||||
else {
|
||||
destination.addAfter(lastAdded, source);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -900,7 +900,18 @@ public class ConfigFileApplicationListenerTests {
|
|||
this.context = application.run("--spring.config.name=applicationloop");
|
||||
ConfigurableEnvironment environment = this.context.getEnvironment();
|
||||
assertThat(environment.acceptsProfiles("loop")).isTrue();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void multiValueSpringProfiles() {
|
||||
// gh-13362
|
||||
SpringApplication application = new SpringApplication(Config.class);
|
||||
application.setWebApplicationType(WebApplicationType.NONE);
|
||||
this.context = application.run("--spring.config.name=applicationmultiprofiles");
|
||||
ConfigurableEnvironment environment = this.context.getEnvironment();
|
||||
assertThat(environment.acceptsProfiles("test")).isTrue();
|
||||
assertThat(environment.acceptsProfiles("another-test")).isTrue();
|
||||
assertThat(environment.getProperty("message")).isEqualTo("multiprofile");
|
||||
}
|
||||
|
||||
private Condition<ConfigurableEnvironment> matchingPropertySource(
|
||||
|
|
|
|||
|
|
@ -0,0 +1,6 @@
|
|||
spring.profiles.active: test, another-test
|
||||
message: default
|
||||
---
|
||||
spring:
|
||||
profiles: test,another-test
|
||||
message: multiprofile
|
||||
Loading…
Reference in New Issue