in src/java/org/apache/turbine/services/ui/TurbineUIService.java [280:329]
private Properties loadSkin(String skinName)
{
Properties defaultSkinProperties = null;
if (!StringUtils.equals(skinName, SKIN_PROPERTY_DEFAULT))
{
defaultSkinProperties = getSkinProperties(SKIN_PROPERTY_DEFAULT);
}
// The following line is okay even for default.
Properties skinProperties = new Properties(defaultSkinProperties);
StringBuilder sb = new StringBuilder();
sb.append('/').append(skinsDirectory);
sb.append('/').append(skinName);
sb.append('/').append(SKIN_PROPS_FILE);
log.debug("Loading selected skin from: {}", sb::toString);
try (InputStream is = servletService.getResourceAsStream(sb.toString()))
{
// This will NPE if the directory associated with the skin does not
// exist, but it is handled correctly below.
skinProperties.load(is);
}
catch (Exception e)
{
log.error("Cannot load skin: {}, from: {}", skinName, sb.toString(), e);
if (!StringUtils.equals(skinName, getWebappSkinName())
&& !StringUtils.equals(skinName, SKIN_PROPERTY_DEFAULT))
{
log.error("Attempting to return the skin configured for webapp instead of {}", skinName);
return getSkinProperties(getWebappSkinName());
}
else if (!StringUtils.equals(skinName, SKIN_PROPERTY_DEFAULT))
{
log.error("Return the default skin instead of {}", skinName);
return skinProperties; // Already contains the default skin.
}
else
{
log.error("No skins available - returning an empty Properties");
return new Properties();
}
}
// Replace in skins HashMap
skins.put(skinName, skinProperties);
return skinProperties;
}