Skip to content

Commit

Permalink
load config file(apollo-env.properties) from working directory first,…
Browse files Browse the repository at this point in the history
… so that it behaves the same as spring boot config files
  • Loading branch information
nobodyiam committed Apr 29, 2017
1 parent bd1832b commit 26cc170
Showing 1 changed file with 18 additions and 1 deletion.
Expand Up @@ -9,16 +9,18 @@
import java.io.InputStream;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.Enumeration;
import java.util.Properties;

public class ResourceUtils {

private static final Logger logger = LoggerFactory.getLogger(ResourceUtils.class);
private static final String[] DEFAULT_FILE_SEARCH_LOCATIONS = new String[]{"./config/", "./"};

@SuppressWarnings("unchecked")
public static Properties readConfigFile(String configPath, Properties defaults) {
InputStream in = ClassLoaderUtil.getLoader().getResourceAsStream(configPath);
InputStream in = loadConfigFileFromDefaultSearchLocations(configPath);
logger.debug("Reading config from resource {}", configPath);
Properties props = new Properties();
try {
Expand Down Expand Up @@ -65,4 +67,19 @@ public static Properties readConfigFile(String configPath, Properties defaults)
}
return props;
}

private static InputStream loadConfigFileFromDefaultSearchLocations(String configPath) {
for (String searchLocation : DEFAULT_FILE_SEARCH_LOCATIONS) {
try {
File candidate = Paths.get(searchLocation, configPath).toFile();
if (candidate.exists() && candidate.isFile() && candidate.canRead()) {
return new FileInputStream(candidate);
}
} catch (Throwable ex) {
//ignore
}
}

return ClassLoaderUtil.getLoader().getResourceAsStream(configPath);
}
}

0 comments on commit 26cc170

Please sign in to comment.