Example usage for org.apache.commons.configuration DefaultConfigurationBuilder ADDITIONAL_NAME

List of usage examples for org.apache.commons.configuration DefaultConfigurationBuilder ADDITIONAL_NAME

Introduction

In this page you can find the example usage for org.apache.commons.configuration DefaultConfigurationBuilder ADDITIONAL_NAME.

Prototype

String ADDITIONAL_NAME

To view the source code for org.apache.commons.configuration DefaultConfigurationBuilder ADDITIONAL_NAME.

Click Source Link

Document

Constant for the name of the additional configuration.

Usage

From source file:com.legstar.config.commons.LegStarConfigCommons.java

/**
 * Loads an XML configuration from file.
 * //from   ww w  .  ja v a2s.  c  om
 * @param configFileName the configuration file name
 * @return the in-memory XML configuration
 * @throws LegStarConfigurationException if configuration failed to load
 */
protected HierarchicalConfiguration loadGeneralConfig(final String configFileName)
        throws LegStarConfigurationException {
    try {
        if (_log.isDebugEnabled()) {
            _log.debug("Loading configuration file: " + configFileName);
        }
        /* First try as if it is a single configuration file */
        HierarchicalConfiguration generalConfig = new XMLConfiguration(configFileName);
        /*
         * If the first tag is additional, then this is a combined
         * configuration
         * that needs to be loaded in a specific way.
         */
        if (generalConfig.configurationsAt("additional").size() > 0) {
            DefaultConfigurationBuilder dcb = new DefaultConfigurationBuilder();
            dcb.setFileName(configFileName);
            generalConfig = (HierarchicalConfiguration) dcb.getConfiguration(true)
                    .getConfiguration(DefaultConfigurationBuilder.ADDITIONAL_NAME);
        }
        generalConfig.setExpressionEngine(new XPathExpressionEngine());
        return generalConfig;
    } catch (ConfigurationException e) {
        throw new LegStarConfigurationException(e);
    }
}