Fix absolute file detection on Windows

Closes gh-3299
This commit is contained in:
Matt Benson 2015-06-20 21:27:40 -05:00 committed by Stephane Nicoll
parent 6fd3042462
commit 80deaf6456
2 changed files with 14 additions and 3 deletions

View File

@ -54,6 +54,7 @@ import org.springframework.core.io.DefaultResourceLoader;
import org.springframework.core.io.Resource;
import org.springframework.core.io.ResourceLoader;
import org.springframework.util.Assert;
import org.springframework.util.ResourceUtils;
import org.springframework.util.StringUtils;
import org.springframework.validation.BindException;
@ -455,10 +456,10 @@ public class ConfigFileApplicationListener implements
for (String path : asResolvedSet(
this.environment.getProperty(CONFIG_LOCATION_PROPERTY), null)) {
if (!path.contains("$")) {
if (!path.contains(":")) {
path = "file:" + path;
}
path = StringUtils.cleanPath(path);
if (!ResourceUtils.isUrl(path)) {
path = ResourceUtils.FILE_URL_PREFIX + path;
}
}
locations.add(path);
}

View File

@ -458,6 +458,16 @@ public class ConfigFileApplicationListenerTests {
+ location + "]"));
}
@Test
public void absoluteResourceDefaultsToFile() throws Exception {
String location = new File("src/test/resources/specificlocation.properties").getAbsolutePath();
EnvironmentTestUtils.addEnvironment(this.environment, "spring.config.location:"
+ location);
this.initializer.onApplicationEvent(this.event);
assertThat(this.environment, containsPropertySource("applicationConfig: [file:"
+ location.replace(File.separatorChar, '/') + "]"));
}
@Test
public void propertySourceAnnotation() throws Exception {
SpringApplication application = new SpringApplication(WithPropertySource.class);