/**
* Construct a new environment and use Spring Boot to populate its property sources using
* {@link ConfigFileApplicationListener}.
*/
private ConfigurableEnvironment loadPropertySources(final String searchLocation, final String baseName) {
final ConfigurableEnvironment environment = new StandardEnvironment();
environment.merge(parentEnvironment);
new ConfigFileApplicationListener() {
public void apply() {
setSearchLocations(searchLocation);
// We'd like to do 'setSearchNames(baseName)', but the environment property
// has strong precedence and is already set for XD_CONFIG_NAME.
Map<String, Object> singletonMap = Collections.singletonMap("spring.config.name",
(Object) baseName);
environment.getPropertySources().addFirst(
new MapPropertySource("searchNamesOverride", singletonMap));
addPropertySources(environment, resourceLoader);
}
}.apply();
return environment;