Commit 4b1e5e9c authored by Andy Wilkinson's avatar Andy Wilkinson

Improve diagnostics when loading a property source from a file fails

Closes gh-8294
parent 43f34546
/* /*
* Copyright 2012-2016 the original author or authors. * Copyright 2012-2017 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
...@@ -208,12 +208,7 @@ public class ConfigFileApplicationListener implements EnvironmentPostProcessor, ...@@ -208,12 +208,7 @@ public class ConfigFileApplicationListener implements EnvironmentPostProcessor,
protected void addPropertySources(ConfigurableEnvironment environment, protected void addPropertySources(ConfigurableEnvironment environment,
ResourceLoader resourceLoader) { ResourceLoader resourceLoader) {
RandomValuePropertySource.addToEnvironment(environment); RandomValuePropertySource.addToEnvironment(environment);
try { new Loader(environment, resourceLoader).load();
new Loader(environment, resourceLoader).load();
}
catch (IOException ex) {
throw new IllegalStateException("Unable to load configuration files", ex);
}
} }
/** /**
...@@ -339,7 +334,7 @@ public class ConfigFileApplicationListener implements EnvironmentPostProcessor, ...@@ -339,7 +334,7 @@ public class ConfigFileApplicationListener implements EnvironmentPostProcessor,
: resourceLoader; : resourceLoader;
} }
public void load() throws IOException { public void load() {
this.propertiesLoader = new PropertySourcesLoader(); this.propertiesLoader = new PropertySourcesLoader();
this.activatedProfiles = false; this.activatedProfiles = false;
this.profiles = Collections.asLifoQueue(new LinkedList<Profile>()); this.profiles = Collections.asLifoQueue(new LinkedList<Profile>());
...@@ -423,8 +418,7 @@ public class ConfigFileApplicationListener implements EnvironmentPostProcessor, ...@@ -423,8 +418,7 @@ public class ConfigFileApplicationListener implements EnvironmentPostProcessor,
return unprocessedActiveProfiles; return unprocessedActiveProfiles;
} }
private void load(String location, String name, Profile profile) private void load(String location, String name, Profile profile) {
throws IOException {
String group = "profile=" + (profile == null ? "" : profile); String group = "profile=" + (profile == null ? "" : profile);
if (!StringUtils.hasText(name)) { if (!StringUtils.hasText(name)) {
// Try to load directly from the location // Try to load directly from the location
...@@ -456,6 +450,18 @@ public class ConfigFileApplicationListener implements EnvironmentPostProcessor, ...@@ -456,6 +450,18 @@ public class ConfigFileApplicationListener implements EnvironmentPostProcessor,
} }
private PropertySource<?> loadIntoGroup(String identifier, String location, private PropertySource<?> loadIntoGroup(String identifier, String location,
Profile profile) {
try {
return doLoadIntoGroup(identifier, location, profile);
}
catch (Exception ex) {
throw new IllegalStateException(
"Failed to load property source from location '" + location + "'",
ex);
}
}
private PropertySource<?> doLoadIntoGroup(String identifier, String location,
Profile profile) throws IOException { Profile profile) throws IOException {
Resource resource = this.resourceLoader.getResource(location); Resource resource = this.resourceLoader.getResource(location);
PropertySource<?> propertySource = null; PropertySource<?> propertySource = null;
......
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