Default spring.config.location to file: if no prefix supplied
Fixes gh-198
This commit is contained in:
@@ -263,7 +263,16 @@ public class ConfigFileApplicationListener implements
|
||||
|
||||
private PropertySource<?> load(ConfigurableEnvironment environment,
|
||||
ResourceLoader resourceLoader, String location, String profile) {
|
||||
location = environment.resolvePlaceholders(location);
|
||||
|
||||
String path = environment.resolvePlaceholders(location);
|
||||
if (LOCATION_VARIABLE.equals(location) && !path.contains("$")) {
|
||||
if (!path.contains(":")) {
|
||||
path = "file:" + path;
|
||||
}
|
||||
path = StringUtils.cleanPath(path);
|
||||
}
|
||||
location = path;
|
||||
|
||||
String suffix = "." + StringUtils.getFilenameExtension(location);
|
||||
Class<?> type = this.propertySourceAnnotations.configuration(location);
|
||||
|
||||
|
||||
@@ -153,8 +153,8 @@ public class ConfigFileApplicationListenerTests {
|
||||
|
||||
@Test
|
||||
public void yamlProfileCanBeChanged() throws Exception {
|
||||
EnvironmentTestUtils
|
||||
.addEnviroment(this.environment, "spring.profiles.active:prod");
|
||||
EnvironmentTestUtils.addEnviroment(this.environment,
|
||||
"spring.profiles.active:prod");
|
||||
this.initializer.setNames("testsetprofiles");
|
||||
this.initializer.onApplicationEvent(this.event);
|
||||
assertThat(Arrays.asList(this.environment.getActiveProfiles()).toString(),
|
||||
@@ -189,6 +189,25 @@ public class ConfigFileApplicationListenerTests {
|
||||
assertThat(this.environment.getProperty("foo"), equalTo("bucket"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void specificResourceAsFile() throws Exception {
|
||||
String location = "file:src/test/resources/specificlocation.properties";
|
||||
EnvironmentTestUtils.addEnviroment(this.environment, "spring.config.location:"
|
||||
+ location);
|
||||
this.initializer.onApplicationEvent(this.event);
|
||||
assertThat(this.environment.getPropertySources().contains(location), is(true));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void specificResourceDefaultsToFile() throws Exception {
|
||||
String location = "src/test/resources/specificlocation.properties";
|
||||
EnvironmentTestUtils.addEnviroment(this.environment, "spring.config.location:"
|
||||
+ location);
|
||||
this.initializer.onApplicationEvent(this.event);
|
||||
assertThat(this.environment.getPropertySources().contains("file:" + location),
|
||||
is(true));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void propertySourceAnnotation() throws Exception {
|
||||
SpringApplication application = new SpringApplication(WithPropertySource.class);
|
||||
|
||||
Reference in New Issue
Block a user