Commit 889a97a6 authored by Dave Syer's avatar Dave Syer

Default spring.config.location to file: if no prefix supplied

Fixes gh-198
parent aebaa580
...@@ -263,7 +263,16 @@ public class ConfigFileApplicationListener implements ...@@ -263,7 +263,16 @@ public class ConfigFileApplicationListener implements
private PropertySource<?> load(ConfigurableEnvironment environment, private PropertySource<?> load(ConfigurableEnvironment environment,
ResourceLoader resourceLoader, String location, String profile) { 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); String suffix = "." + StringUtils.getFilenameExtension(location);
Class<?> type = this.propertySourceAnnotations.configuration(location); Class<?> type = this.propertySourceAnnotations.configuration(location);
......
...@@ -153,8 +153,8 @@ public class ConfigFileApplicationListenerTests { ...@@ -153,8 +153,8 @@ public class ConfigFileApplicationListenerTests {
@Test @Test
public void yamlProfileCanBeChanged() throws Exception { public void yamlProfileCanBeChanged() throws Exception {
EnvironmentTestUtils EnvironmentTestUtils.addEnviroment(this.environment,
.addEnviroment(this.environment, "spring.profiles.active:prod"); "spring.profiles.active:prod");
this.initializer.setNames("testsetprofiles"); this.initializer.setNames("testsetprofiles");
this.initializer.onApplicationEvent(this.event); this.initializer.onApplicationEvent(this.event);
assertThat(Arrays.asList(this.environment.getActiveProfiles()).toString(), assertThat(Arrays.asList(this.environment.getActiveProfiles()).toString(),
...@@ -189,6 +189,25 @@ public class ConfigFileApplicationListenerTests { ...@@ -189,6 +189,25 @@ public class ConfigFileApplicationListenerTests {
assertThat(this.environment.getProperty("foo"), equalTo("bucket")); 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 @Test
public void propertySourceAnnotation() throws Exception { public void propertySourceAnnotation() throws Exception {
SpringApplication application = new SpringApplication(WithPropertySource.class); SpringApplication application = new SpringApplication(WithPropertySource.class);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment