Example usage for org.apache.commons.configuration CompositeConfiguration CompositeConfiguration

List of usage examples for org.apache.commons.configuration CompositeConfiguration CompositeConfiguration

Introduction

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

Prototype

public CompositeConfiguration() 

Source Link

Document

Creates an empty CompositeConfiguration object which can then be added some other Configuration files

Usage

From source file:cc.kune.wave.server.CustomSettingsBinder.java

/**
 * Bind configuration parameters into Guice Module.
 *
 * @param propertyFile the property file
 * @param settingsArg the settings arg/*from   w  ww .  ja  v  a 2s  .c o m*/
 * @return a Guice module configured with setting support.
 * @throws ConfigurationException on configuration error
 */
public static Module bindSettings(String propertyFile, Class<?>... settingsArg) throws ConfigurationException {
    final CompositeConfiguration config = new CompositeConfiguration();
    config.addConfiguration(new SystemConfiguration());
    config.addConfiguration(new PropertiesConfiguration(propertyFile));

    List<Field> fields = new ArrayList<Field>();
    for (Class<?> settings : settingsArg) {
        fields.addAll(Arrays.asList(settings.getDeclaredFields()));
    }

    // Reflect on settings class and absorb settings
    final Map<Setting, Field> settings = new LinkedHashMap<Setting, Field>();
    for (Field field : fields) {
        if (!field.isAnnotationPresent(Setting.class)) {
            continue;
        }

        // Validate target type
        SettingTypeValidator typeHelper = supportedSettingTypes.get(field.getType());
        if (typeHelper == null || !typeHelper.check(field.getGenericType())) {
            throw new IllegalArgumentException(field.getType() + " is not one of the supported setting types");
        }

        Setting setting = field.getAnnotation(Setting.class);
        settings.put(setting, field);
    }

    // Now validate them
    List<String> missingProperties = new ArrayList<String>();
    for (Setting setting : settings.keySet()) {
        if (setting.defaultValue().isEmpty()) {
            if (!config.containsKey(setting.name())) {
                missingProperties.add(setting.name());
            }
        }
    }
    if (missingProperties.size() > 0) {
        StringBuilder error = new StringBuilder();
        error.append("The following required properties are missing from the server configuration: ");
        error.append(Joiner.on(", ").join(missingProperties));
        throw new ConfigurationException(error.toString());
    }

    // bundle everything up in an injectable guice module
    return new AbstractModule() {

        @Override
        protected void configure() {
            // We must iterate the settings a third time when binding.
            // Note: do not collapse these loops as that will damage
            // early error detection. The runtime is still O(n) in setting count.
            for (Map.Entry<Setting, Field> entry : settings.entrySet()) {
                Class<?> type = entry.getValue().getType();
                Setting setting = entry.getKey();

                if (int.class.equals(type)) {
                    Integer defaultValue = null;
                    if (!setting.defaultValue().isEmpty()) {
                        defaultValue = Integer.parseInt(setting.defaultValue());
                    }
                    bindConstant().annotatedWith(Names.named(setting.name()))
                            .to(config.getInteger(setting.name(), defaultValue));
                } else if (boolean.class.equals(type)) {
                    Boolean defaultValue = null;
                    if (!setting.defaultValue().isEmpty()) {
                        defaultValue = Boolean.parseBoolean(setting.defaultValue());
                    }
                    bindConstant().annotatedWith(Names.named(setting.name()))
                            .to(config.getBoolean(setting.name(), defaultValue));
                } else if (String.class.equals(type)) {
                    bindConstant().annotatedWith(Names.named(setting.name()))
                            .to(config.getString(setting.name(), setting.defaultValue()));
                } else {
                    String[] value = config.getStringArray(setting.name());
                    if (value.length == 0 && !setting.defaultValue().isEmpty()) {
                        value = setting.defaultValue().split(",");
                    }
                    bind(new TypeLiteral<List<String>>() {
                    }).annotatedWith(Names.named(setting.name())).toInstance(ImmutableList.copyOf(value));
                }
            }
        }
    };
}

From source file:gda.configuration.properties.JakartaPropertiesConfig.java

/**
 * Constructor for JakartaPropertiesConfig objects. Creates a new composite configuration and adds a system
 * configuration to it.//from  w  w w . j  a v a  2  s . c  om
 */
public JakartaPropertiesConfig() {
    // create global composite to store all loaded property config data
    config = new CompositeConfiguration();

    // create a system properties configuration - grabs all system
    // properties.
    Configuration sysConfig = new SystemConfiguration();
    config.addConfiguration(sysConfig);

    // create map to store individual configs
    configMap = new HashMap<String, Configuration>();

    // put system properties in the map
    configMap.put("system", sysConfig);
}

From source file:com.dattack.dbtools.drules.DrulesClient.java

private static CompositeConfiguration loadProperties(final String[] propertyFiles)
        throws ConfigurationException {

    final CompositeConfiguration configuration = new CompositeConfiguration();
    configuration.addConfiguration(GlobalConfiguration.getConfiguration());

    if (propertyFiles != null) {
        for (final String filename : propertyFiles) {
            if (StringUtils.isNotBlank(filename)) {
                configuration.addConfiguration(
                        new PropertiesConfiguration(ConfigurationUtil.interpolate(filename, configuration)));
            }/*from w  w w.  ja  va  2  s. c  o m*/
        }
    }
    return configuration;
}

From source file:com.caricah.iotracah.bootstrap.runner.impl.DefaultRunner.java

/**
 * Initializes this instance./*from w w w.  ja  v  a  2 s  .co  m*/
 * <p>
 * This method should be called once the JVM process is created and the
 * <code>Runner</code> instance is created thru its empty public
 * constructor.
 * </p>
 * <p>
 * Apart from set up and allocation of native resources, this method
 * does not start actual operation of <code>Runner</code> (such
 * as starting threads.) as it would impose serious security hazards. The
 * start of operation must be performed in the <code>start()</code>
 * method.
 * </p>
 *
 * @throws UnRetriableException Any exception preventing a successful
 *                              initialization.
 */
@Override
public void init() throws UnRetriableException {

    log.trace(" init : initializing system configurations");

    //First load the system settings as the defaults.
    CompositeConfiguration configuration = new CompositeConfiguration();
    configuration.addConfiguration(new SystemConfiguration());

    setConfiguration(configuration);

    log.info(" init : {} set to : {}", "iotracah.pidfile", System.getProperty("iotracah.pidfile"));
    log.info(" init : {} set to : {}", "iotracah.default.path.home",
            System.getProperty("iotracah.default.path.home"));
    log.info(" init : {} set to : {}", "iotracah.default.path.logs",
            System.getProperty("iotracah.default.path.logs"));
    log.info(" init : {} set to : {}", "iotracah.default.path.data",
            System.getProperty("iotracah.default.path.data"));
    log.info(" init : {} set to : {}", "iotracah.default.path.conf",
            System.getProperty("iotracah.default.path.conf"));

    for (ConfigHandler configHandler : getConfigurationSetLoader()) {

        log.debug(" init : found the configuration handler {} ", configHandler);

        Configuration newConfigs = configHandler.populateConfiguration(getConfiguration());
        setConfiguration(newConfigs);
    }

    for (LogHandler logHandler : getLogSetLoader()) {

        log.debug(" init : Configuring logging using handler {} ", logHandler);

        logHandler.configure(getConfiguration());

    }

}

From source file:com.cloudera.whirr.cm.CmServerClusterInstance.java

public synchronized static Configuration getConfiguration(ClusterSpec clusterSpec) throws IOException {
    try {/*from w w w. ja v  a 2 s.c  o  m*/
        CompositeConfiguration configuration = new CompositeConfiguration();
        if (clusterSpec != null) {
            configuration.addConfiguration(clusterSpec.getConfiguration());
        }
        configuration.addConfiguration(new PropertiesConfiguration(
                CmServerClusterInstance.class.getClassLoader().getResource(CONFIG_WHIRR_DEFAULT_FILE)));
        return configuration;
    } catch (ConfigurationException e) {
        throw new IOException("Error loading " + CONFIG_WHIRR_DEFAULT_FILE, e);
    }
}

From source file:com.strandls.alchemy.webservices.client.ClientInitModule.java

/**
 * @return configuration for the client.
 *//*  w  w  w . ja v a2s.  c  om*/
private Configuration getConfiguration() {
    final CompositeConfiguration config = new CompositeConfiguration();
    config.addConfiguration(new SystemConfiguration());
    try {
        config.addConfiguration(new PropertiesConfiguration(CLIENT_PROPERTIES));
    } catch (final ConfigurationException e) {
        throw new RuntimeException(e);
    }
    return config;
}

From source file:com.dattack.dbping.engine.PingEngine.java

private void execute(final File file, final Set<String> taskNames)
        throws ConfigurationException, DattackParserException {

    if (file.isDirectory()) {

        final File[] files = file.listFiles(FilesystemUtils.createFilenameFilterByExtension("xml"));
        if (files != null) {
            for (final File child : files) {
                execute(child, taskNames);
            }/* ww w .j  a  va2 s  . c o m*/
        }

    } else {

        final DbpingBean dbpingBean = DbpingParser.parse(file);
        for (final PingTaskBean pingTaskBean : dbpingBean.getTaskList()) {

            if (taskNames != null && !taskNames.isEmpty() && !taskNames.contains(pingTaskBean.getName())) {
                continue;
            }

            final CompositeConfiguration conf = new CompositeConfiguration();
            conf.setProperty("task.name", pingTaskBean.getName());
            conf.addConfiguration(ConfigurationUtil.createEnvSystemConfiguration());

            final DataSource dataSource = new JNDIDataSource(pingTaskBean.getDatasource());

            final SqlCommandProvider sentenceProvider = getSentenceProvider(pingTaskBean.getCommandProvider());
            sentenceProvider.setSentences(pingTaskBean.getSqlStatementList());

            final LogWriter logWriter = new CSVFileLogWriter(
                    ConfigurationUtil.interpolate(pingTaskBean.getLogFile(), conf));

            final LogHeader logHeader = new LogHeader(pingTaskBean);
            logWriter.write(logHeader);

            for (int i = 0; i < pingTaskBean.getThreads(); i++) {
                pool.submit(new PingJob(pingTaskBean, dataSource, sentenceProvider, logWriter),
                        pingTaskBean.getName() + "@Thread-" + i);
            }
        }
    }
}

From source file:com.blazebit.jbake.mojo.BuildMojo.java

protected CompositeConfiguration createConfiguration() throws ConfigurationException {
    final CompositeConfiguration config = new CompositeConfiguration();

    if (properties != null) {
        config.addConfiguration(new MapConfiguration(properties));
    }//w w  w .  jav a2  s  .co  m
    config.addConfiguration(new MapConfiguration(project.getProperties()));
    config.addConfiguration(ConfigUtil.load(inputDirectory));

    if (getLog().isDebugEnabled()) {
        getLog().debug("Configuration:");

        Iterator<String> iter = config.getKeys();
        while (iter.hasNext()) {
            String key = iter.next();
            getLog().debug(key + ": " + config.getString(key));
        }
    }

    return config;
}

From source file:com.manydesigns.portofino.modules.MailModule.java

@Override
public void init() {
    CompositeConfiguration mailConfiguration = new CompositeConfiguration();
    mailConfiguration.addConfiguration(configuration);
    try {//from   w w w  . ja  v a  2 s  . c o m
        mailConfiguration
                .addConfiguration(new PropertiesConfiguration(getClass().getResource("mail.properties")));
    } catch (ConfigurationException e) {
        logger.error("Could not load mail configuration defaults");
    }
    mailQueueSetup = new MailQueueSetup(mailConfiguration);
    mailQueueSetup.setup();

    SimpleMenuAppender group = SimpleMenuAppender.group("mail", null, "Mail", 4.0);
    adminMenu.menuAppenders.add(group);

    SimpleMenuAppender link = SimpleMenuAppender.link("mail", "Mail", null, "Mail",
            MailSettingsAction.URL_BINDING, 1.0);
    adminMenu.menuAppenders.add(link);

    servletContext.setAttribute(MAIL_CONFIGURATION, mailQueueSetup.getMailConfiguration());

    MailQueue mailQueue = mailQueueSetup.getMailQueue();
    if (mailQueue == null) {
        logger.info("Mail queue not enabled");
        return;
    }

    servletContext.setAttribute(MAIL_QUEUE, mailQueue);
    servletContext.setAttribute(MAIL_SENDER, mailQueueSetup.getMailSender());

    status = ModuleStatus.ACTIVE;
}

From source file:com.dattack.dbtools.drules.engine.DefaultNotificationActionBeanVisitor.java

private void sendMail(final ConfigurationSmtpBean config, final NotificationActionSendMailBean action)
        throws EmailException, AddressException, ConfigurationException, TemplateException, IOException {

    if (config == null) {
        LOGGER.warn("Missing SMTP configuration. Please, check your configuration file.");
        return;/*  w w w  . j a v  a  2 s. co m*/
    }

    final CompositeConfiguration configuration = new CompositeConfiguration();
    configuration.addConfiguration(ThreadContext.getInstance().getConfiguration());
    configuration.setDelimiterParsingDisabled(true);
    configuration.setProperty(PropertyNames.TASK_NAME, flightRecorder.getTaskBean().getName());
    configuration.setProperty(PropertyNames.LOG, flightRecorder.getReport().toString());
    configuration.setProperty(PropertyNames.SUCCESS_ROWS, flightRecorder.getSuccessCounter());
    configuration.setProperty(PropertyNames.ERROR_ROWS, flightRecorder.getErrorCounter());
    configuration.setProperty(PropertyNames.WARNING_ROWS, flightRecorder.getWarningCounter());

    for (final ConfigurationMailingListBean item : config.getMailingLists()) {
        configuration.setProperty(item.getName(), item.getAddressList());
    }

    final HtmlEmailBuilder htmlEmailBuilder = new HtmlEmailBuilder() //
            .withHostName(ConfigurationUtil.interpolate(config.getHostname(), configuration)) //
            .withPort(config.getPort()) //
            .withUsername(ConfigurationUtil.interpolate(config.getUsername(), configuration)) //
            .withPassword(ConfigurationUtil.interpolate(config.getPassword(), configuration)) //
            .withFrom(ConfigurationUtil.interpolate(config.getFrom(), configuration)) //
            .withSubject(ConfigurationUtil.interpolate(action.getSubject(), configuration)) //
            .withMessage(formatMessage(action, configuration)) //
            .withSslOnConnect(config.isSslOnConnect()) //
            .withStartTlsEnabled(config.isStartTlsEnabled()); //

    for (final String to : action.getToAddressesList()) {
        final String[] addresses = StringUtils.split(ConfigurationUtil.interpolate(to, configuration), " ,");
        for (final String item : addresses) {
            htmlEmailBuilder.withToAddress(new InternetAddress(item));
        }
    }

    htmlEmailBuilder.build().send();
}