private Properties loadSkin()

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;
    }