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

Fixes gh-198
pull/208/head
Dave Syer 11 years ago
parent aebaa580db
commit 889a97a6b2

@ -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);

Loading…
Cancel
Save