in commons-jcs3-jcache/src/main/java/org/apache/commons/jcs3/jcache/JCSCachingManager.java [104:149]
private static Properties readConfig(final URI uri, final ClassLoader loader, final Properties properties) {
final Properties props = new Properties();
try {
if (JCSCachingProvider.DEFAULT_URI.toString().equals(uri.toString()) || uri.toURL().getProtocol().equals("jcs"))
{
final Enumeration<URL> resources = loader.getResources(uri.getPath());
if (!resources.hasMoreElements()) // default
{
props.load(new ByteArrayInputStream(DEFAULT_CONFIG.getBytes(StandardCharsets.UTF_8)));
}
else
{
do
{
addProperties(resources.nextElement(), props);
}
while (resources.hasMoreElements());
}
}
else
{
props.load(uri.toURL().openStream());
}
} catch (final IOException e) {
throw new IllegalStateException(e);
}
if (properties != null)
{
props.putAll(properties);
}
for (final Map.Entry<Object, Object> entry : props.entrySet()) {
if (entry.getValue() == null)
{
continue;
}
final String substitute = SUBSTITUTOR.substitute(entry.getValue().toString());
if (!substitute.equals(entry.getValue()))
{
entry.setValue(substitute);
}
}
return props;
}