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

Loading…
Cancel
Save