Example usage for org.apache.commons.configuration HierarchicalConfiguration getString

List of usage examples for org.apache.commons.configuration HierarchicalConfiguration getString

Introduction

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

Prototype

public String getString(String key) 

Source Link

Usage

From source file:org.ambraproject.queue.Routes.java

public void configure() throws Exception {

    @SuppressWarnings("unchecked")
    List<HierarchicalConfiguration> syndications = ((HierarchicalConfiguration) configuration)
            .configurationsAt("ambra.services.syndications.syndication");

    if (syndications != null) {

        onException(Exception.class).handled(true).retryAttemptedLogLevel(LoggingLevel.ERROR)
                .retriesExhaustedLogLevel(LoggingLevel.ERROR).maximumRedeliveries(-1) // redeliver forever
                .maximumRedeliveryDelay(redeliveryInterval * 1000l).redeliveryDelay(redeliveryInterval * 1000l);

        for (HierarchicalConfiguration syndication : syndications) {
            String target = syndication.getString("[@target]");
            String name = syndication.getString("name");
            String responseQueue = syndication.getString("responseQueue", null);
            log.info("Creating routes for " + name);

            String beanName = target.toLowerCase() + "ResponseConsumer";

            if (responseQueue != null) {
                log.info("Setting consumer for response queue " + responseQueue + " to " + beanName);
                from(responseQueue).transacted().to("bean:" + beanName);
            }//from w w  w .jav a  2s  .c  o  m
        }
    }

    String searchIndexingQueue = configuration.getString("ambra.services.search.articleIndexingQueue", null);
    if (searchIndexingQueue != null) {
        log.info("Creating article search indexing route");
        // As set in default exception handler: redeliver forever
        from(SEARCH_INDEX)
                .to("log:org.ambraproject.queue.search.delete.MessageReceived?level=INFO"
                        + "&showBodyType=false" + "&showBody=false" + "&showExchangeId=true")
                .to(searchIndexingQueue);
    } else {
        log.warn("Search index queue not defined. No route created.");
    }

    String searchDeleteQueue = configuration.getString("ambra.services.search.articleDeleteQueue", null);
    if (searchDeleteQueue != null) {
        log.info("Creating article search deleting route");
        // As set in default exception handler: redeliver forever
        from(SEARCH_DELETE).to("log:org.ambraproject.queue.search.index.MessageReceived?level=INFO"
                + "&showBodyType=false" + "&showBody=false" + "&showExchangeId=true").to(searchDeleteQueue);
    } else {
        log.warn("Search delete queue not defined. No route created.");
    }

    String searchMailReceiver = configuration.getString("ambra.services.search.indexingMailReceiver", null);
    if (searchMailReceiver != null) {
        String ambraHost = configuration.getString("ambra.network.hosts.default");

        log.info("Creating index all articles route");
        from(SEARCH_INDEXALL).onException(Exception.class).handled(true).maximumRedeliveries(0) // do not retry
                .setHeader("to", constant(searchMailReceiver))
                .setHeader("from", constant("do-not-reply@plos.org"))
                .setHeader("subject", constant("Failed to queue any articles for indexing (" + ambraHost + ")"))
                .setBody(exceptionMessage()).to(mailEndpoint).end()
                .to("log:org.ambraproject.queue.search.indexall.MessageReceived?level=INFO"
                        + "&showBodyType=false" + "&showBody=false" + "&showExchangeId=true")
                .to("bean:indexingService?method=indexAllArticles")
                .setHeader("to", constant(searchMailReceiver))
                .setHeader("from", constant("do-not-reply@plos.org"))
                .setHeader("subject", constant("Finished queueing articles for indexing (" + ambraHost + ")"))
                .to(mailEndpoint);

        String solrIndexCron = configuration.getString("ambra.services.search.solrIndexCron", null);
        if (solrIndexCron != null) {
            log.info("Configuring cron for indexing all articles with value: {}", solrIndexCron);
            from("quartz://ambra/indexAll?cron=" + solrIndexCron).to(SEARCH_INDEXALL);
        } else {
            log.warn("ambra.services.search.solrIndexCron not defined. Not creating automatic indexing route.");
        }
    } else {
        log.warn("ambra.services.search.indexingMailReceiver not set. Index all queue not created.");
    }

    String aeIndexMailReceiver = configuration
            .getString("ambra.services.academic-editor-reindex.indexingMailReceiver", null);

    if (aeIndexMailReceiver != null) {
        String ambraHost = configuration.getString("ambra.network.hosts.default");

        log.info("Creating AE reindex route");
        from(AE_REINDEX).onException(Exception.class).handled(true).maximumRedeliveries(0) // do not retry
                .setHeader("to", constant(aeIndexMailReceiver))
                .setHeader("from", constant("do-not-reply@plos.org"))
                .setHeader("subject", constant("Failed to run AE Reindex (" + ambraHost + ")"))
                .setBody(exceptionMessage()).to(mailEndpoint).end()
                .to("log:org.ambraproject.queue.ae.reindex.MessageReceived?level=INFO" + "&showBodyType=false"
                        + "&showBody=false" + "&showExchangeId=true")
                .to("bean:indexingService?method=reindexAcademicEditors")
                .setHeader("to", constant(aeIndexMailReceiver))
                .setHeader("from", constant("do-not-reply@plos.org"))
                .setHeader("subject", constant("Finished AE Reindex (" + ambraHost + ")")).to(mailEndpoint);

        String aeIndexCron = configuration.getString("ambra.services.academic-editor-reindex.reindex-cron",
                null);
        if (aeIndexCron != null) {
            log.info("Configuring cron for indexing all articles with value: {}", aeIndexCron);
            from("quartz://ambra/aeReindex?cron=" + aeIndexCron).to(AE_REINDEX);
        } else {
            log.warn(
                    "ambra.services.academic-editor-reindex.reindex-cron not defined. Not creating automatic indexing route.");
        }
    } else {
        log.warn(
                "ambra.services.academic-editor-reindex.indexingMailReceiver not set. Reindex queue not created.");
    }
}

From source file:org.ambraproject.search.service.SolrSearchService.java

public void setConfiguration(Configuration config) throws ApplicationException {
    StringBuilder hightlightFieldBuilder = new StringBuilder();
    queryTimeout = config.getInt("ambra.services.search.timeout", 60000); // default to 1 min

    List sizes = config.getList("ambra.services.search.pageSizes.size");

    if (sizes == null) {
        throw new ApplicationException("ambra.services.search.pageSizes not defined " + "in configuration.");
    }/*from   ww  w. j av  a2 s .c  om*/

    pageSizes = sizes;

    if (config.containsKey("ambra.services.search.sortOptions.option")) {
        validSorts = new HashMap();
        displaySorts = new ArrayList();

        HierarchicalConfiguration hc = (HierarchicalConfiguration) config;
        List<HierarchicalConfiguration> sorts = hc.configurationsAt("ambra.services.search.sortOptions.option");

        for (HierarchicalConfiguration s : sorts) {
            String key = s.getString("[@displayName]");
            String value = s.getString("");
            validSorts.put(key, value);
            displaySorts.add(key);
        }

        ((HierarchicalConfiguration) config).setExpressionEngine(null);
    } else {
        throw new ApplicationException(
                "ambra.services.search.sortOptions.option not defined " + "in configuration.");
    }

    List hFields = config.getList("ambra.services.search.highlightFields.field");

    if (hFields == null) {
        throw new ApplicationException(
                "ambra.services.search.highlightFields.field not defined " + "in configuration.");
    }

    for (Object field : hFields) {
        if (hightlightFieldBuilder.length() > 0) {
            hightlightFieldBuilder.append(",");
        }
        hightlightFieldBuilder.append(field.toString());
    }

    if (config.containsKey("ambra.services.search.keywordFields.field")) {
        validKeywords = new HashMap();
        HierarchicalConfiguration hc = (HierarchicalConfiguration) config;
        List<HierarchicalConfiguration> sorts = hc
                .configurationsAt("ambra.services.search.keywordFields.field");

        for (HierarchicalConfiguration s : sorts) {
            String key = s.getString("[@displayName]");
            String value = s.getString("");
            validKeywords.put(key, value);

            //These fields can be highlighted too!
            if (hightlightFieldBuilder.length() > 0) {
                hightlightFieldBuilder.append(",");
            }
            hightlightFieldBuilder.append(value);
        }
    } else {
        throw new ApplicationException(
                "ambra.services.search.keywordFields.field not defined " + "in configuration.");
    }

    this.highlightFields = hightlightFieldBuilder.toString();
}

From source file:org.ambraproject.service.feed.FeedServiceImpl.java

@Required
public void setConfiguration(Configuration configuration) throws ApplicationException {
    this.configuration = configuration;
    StringBuilder hightlightFieldBuilder = new StringBuilder();
    queryTimeout = configuration.getInt("ambra.services.search.timeout", 60000); // default to 1 min

    if (configuration.containsKey("ambra.services.search.sortOptions.option")) {
        validSorts = new HashMap();
        displaySorts = new ArrayList();

        HierarchicalConfiguration hc = (HierarchicalConfiguration) configuration;
        List<HierarchicalConfiguration> sorts = hc.configurationsAt("ambra.services.search.sortOptions.option");

        for (HierarchicalConfiguration s : sorts) {
            String key = s.getString("[@displayName]");
            String value = s.getString("");
            validSorts.put(key, value);//  www  . j  a v a2s. c om
            displaySorts.add(key);
        }

        ((HierarchicalConfiguration) configuration).setExpressionEngine(null);
    } else {
        throw new ApplicationException(
                "ambra.services.search.sortOptions.option not defined " + "in configuration.");
    }

    if (configuration.containsKey("ambra.services.search.keywordFields.field")) {
        validKeywords = new HashMap();
        HierarchicalConfiguration hc = (HierarchicalConfiguration) configuration;
        List<HierarchicalConfiguration> sorts = hc
                .configurationsAt("ambra.services.search.keywordFields.field");

        for (HierarchicalConfiguration s : sorts) {
            String key = s.getString("[@displayName]");
            String value = s.getString("");
            validKeywords.put(key, value);

            //These fields can be highlighted too!
            if (hightlightFieldBuilder.length() > 0) {
                hightlightFieldBuilder.append(",");
            }
            hightlightFieldBuilder.append(value);
        }
    } else {
        throw new ApplicationException(
                "ambra.services.search.keywordFields.field not defined " + "in configuration.");
    }
}

From source file:org.ambraproject.service.search.SolrSearchService.java

public void setConfiguration(Configuration config) throws ApplicationException {
    queryTimeout = config.getInt("ambra.services.search.timeout", 60000); // default to 1 min

    List sizes = config.getList("ambra.services.search.pageSizes.size");

    if (sizes == null) {
        throw new ApplicationException("ambra.services.search.pageSizes not defined " + "in configuration.");
    }// ww  w  . jav  a2  s . c  om

    pageSizes = sizes;

    if (config.containsKey("ambra.services.search.sortOptions.option")) {
        validSorts = new HashMap();
        displaySorts = new ArrayList();

        HierarchicalConfiguration hc = (HierarchicalConfiguration) config;
        List<HierarchicalConfiguration> sorts = hc.configurationsAt("ambra.services.search.sortOptions.option");

        for (HierarchicalConfiguration s : sorts) {
            String key = s.getString("[@displayName]");
            String value = s.getString("");
            validSorts.put(key, value);
            displaySorts.add(key);
        }

        ((HierarchicalConfiguration) config).setExpressionEngine(null);
    } else {
        throw new ApplicationException(
                "ambra.services.search.sortOptions.option not defined " + "in configuration.");
    }

    if (config.containsKey("ambra.services.search.keywordFields.field")) {
        validKeywords = new HashMap();
        HierarchicalConfiguration hc = (HierarchicalConfiguration) config;
        List<HierarchicalConfiguration> sorts = hc
                .configurationsAt("ambra.services.search.keywordFields.field");

        for (HierarchicalConfiguration s : sorts) {
            String key = s.getString("[@displayName]");
            String value = s.getString("");
            validKeywords.put(key, value);

        }
    } else {
        throw new ApplicationException(
                "ambra.services.search.keywordFields.field not defined " + "in configuration.");
    }
}

From source file:org.ambraproject.service.user.UserServiceImpl.java

@Override
@SuppressWarnings("unchecked")
public List<UserAlert> getAvailableAlerts() {
    List<UserAlert> alerts = new ArrayList<UserAlert>();

    final SortedMap<Integer, Pair> categoryNames = new ConcurrentSkipListMap<Integer, Pair>();

    HierarchicalConfiguration hc = (HierarchicalConfiguration) configuration;
    List<HierarchicalConfiguration> categories = hc.configurationsAt(ALERTS_CATEGORIES_CATEGORY);

    for (HierarchicalConfiguration c : categories) {
        String key = c.getString("[@key]");
        int order = c.getInt("[@displayOrder]", categoryNames.size());
        String value = c.getString("");

        categoryNames.put(order, new Pair<String, String>(key, value));
    }//w  w w .  j  av  a2 s .  c o  m

    final String[] weeklyCategories = hc.getStringArray(ALERTS_WEEKLY);
    final String[] monthlyCategories = hc.getStringArray(ALERTS_MONTHLY);
    final String[] subjectFilters = hc.getStringArray(SUBJECT_FILTER);

    final Set<Map.Entry<Integer, Pair>> categoryNamesSet = categoryNames.entrySet();

    for (final Map.Entry<Integer, Pair> category : categoryNamesSet) {
        final String key = (String) category.getValue().getFirst();
        boolean weeklyCategoryKey = false;
        boolean monthlyCategoryKey = false;
        boolean subjectFilter = false;

        if (ArrayUtils.contains(weeklyCategories, key)) {
            weeklyCategoryKey = true;
        }
        if (ArrayUtils.contains(monthlyCategories, key)) {
            monthlyCategoryKey = true;
        }
        if (ArrayUtils.contains(subjectFilters, key)) {
            subjectFilter = true;
        }

        alerts.add(
                new UserAlert((String) category.getValue().getFirst(), (String) category.getValue().getSecond(),
                        weeklyCategoryKey, monthlyCategoryKey, subjectFilter));
    }
    return alerts;
}

From source file:org.ambraproject.user.service.UserServiceImpl.java

@Override
@SuppressWarnings("unchecked")
public List<UserAlert> getAvailableAlerts() {
    List<UserAlert> alerts = new ArrayList<UserAlert>();

    final Map<String, String> categoryNames = new HashMap<String, String>();

    HierarchicalConfiguration hc = (HierarchicalConfiguration) configuration;
    List<HierarchicalConfiguration> categories = hc.configurationsAt(ALERTS_CATEGORIES_CATEGORY);
    for (HierarchicalConfiguration c : categories) {
        String key = c.getString("[@key]");
        String value = c.getString("");
        categoryNames.put(key, value);//from w  ww  .j  av  a  2  s.c o m
    }

    final String[] weeklyCategories = hc.getStringArray(ALERTS_WEEKLY);
    final String[] monthlyCategories = hc.getStringArray(ALERTS_MONTHLY);

    final Set<Map.Entry<String, String>> categoryNamesSet = categoryNames.entrySet();

    for (final Map.Entry<String, String> category : categoryNamesSet) {
        final String key = category.getKey();
        boolean weeklyCategoryKey = false;
        boolean monthlyCategoryKey = false;
        if (ArrayUtils.contains(weeklyCategories, key)) {
            weeklyCategoryKey = true;
        }
        if (ArrayUtils.contains(monthlyCategories, key)) {
            monthlyCategoryKey = true;
        }
        alerts.add(new UserAlert(key, category.getValue(), weeklyCategoryKey, monthlyCategoryKey));
    }
    return alerts;
}

From source file:org.apache.james.container.spring.bean.factory.mailrepositorystore.MailRepositoryStoreBeanFactory.java

/**
 * <p>//from   w w  w  . jav a 2 s  . c o m
 * Registers a new mail repository type in the mail store's registry based
 * upon a passed in <code>Configuration</code> object.
 * </p>
 * <p/>
 * <p>
 * This is presumably synchronized to prevent corruption of the internal
 * registry.
 * </p>
 *
 * @param repConf the Configuration object used to register the repository
 * @throws ConfigurationException if an error occurs accessing the Configuration object
 */
public synchronized void registerRepository(HierarchicalConfiguration repConf) throws ConfigurationException {

    String className = repConf.getString("[@class]");

    boolean infoEnabled = getLogger().isInfoEnabled();

    for (String protocol : repConf.getStringArray("protocols.protocol")) {
        HierarchicalConfiguration defConf = null;

        if (repConf.getKeys("config").hasNext()) {
            // Get the default configuration for these protocol/type
            // combinations.
            defConf = repConf.configurationAt("config");
        }

        if (infoEnabled) {
            StringBuilder infoBuffer = new StringBuilder(128);
            infoBuffer.append("Registering Repository instance of class ");
            infoBuffer.append(className);
            infoBuffer.append(" to handle ");
            infoBuffer.append(protocol);
            infoBuffer.append(" protocol requests for repositories with key ");
            infoBuffer.append(protocol);
            getLogger().info(infoBuffer.toString());
        }

        if (classes.get(protocol) != null) {
            throw new ConfigurationException(
                    "The combination of protocol and type comprise a unique key for repositories.  This constraint has been violated.  Please check your repository configuration.");
        }

        classes.put(protocol, className);

        if (defConf != null) {
            defaultConfigs.put(protocol, defConf);
        }
    }

}

From source file:org.apache.james.container.spring.bean.factorypostprocessor.ConfigurationBeanFactoryPostProcessor.java

/**
 * Parse the configuration file and depending on it register the beans
 *//*from w ww  . j av a 2  s  . c om*/
public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException {

    ConfigurationProvider confProvider = beanFactory.getBean(ConfigurationProvider.class);

    // loop over the beans
    for (String name : beans.keySet()) {

        try {

            HierarchicalConfiguration config = confProvider.getConfiguration(name);

            // Get the configuration for the class
            String repClass = config.getString("[@class]");

            // Create the definition and register it
            BeanDefinitionRegistry registry = (BeanDefinitionRegistry) beanFactory;
            BeanDefinition def = BeanDefinitionBuilder.genericBeanDefinition(repClass).getBeanDefinition();
            registry.registerBeanDefinition(name, def);

            String aliases = beans.get(name);
            String[] aliasArray = aliases.split(",");

            // check if we need to register some aliases for this bean
            if (aliasArray != null) {
                for (String anAliasArray : aliasArray) {
                    String alias = anAliasArray.trim();
                    if (alias.length() > 0) {
                        registry.registerAlias(name, anAliasArray);
                    }
                }
            }

        } catch (ConfigurationException e) {
            throw new FatalBeanException("Unable to parse configuration for bean " + name, e);
        }
    }

}

From source file:org.apache.james.container.spring.mailbox.MaxQuotaConfigurationReader.java

private Map<String, Long> parseMaxMessageConfiguration(HierarchicalConfiguration config, String entry) {
    List<HierarchicalConfiguration> maxMessageConfiguration = config.configurationAt("maxQuotaManager")
            .configurationsAt(entry);//from  www  .j  a va 2 s . c  o  m
    Map<String, Long> result = new HashMap<String, Long>();
    for (HierarchicalConfiguration conf : maxMessageConfiguration) {
        result.put(conf.getString("quotaRoot"), conf.getLong("value"));
    }
    return result;
}

From source file:org.apache.james.container.spring.osgi.AbstractBundleTracker.java

@Override
public void afterPropertiesSet() throws Exception {
    ConfigurationProvider confProvider = factory.getBean(ConfigurationProvider.class);
    HierarchicalConfiguration config = confProvider.getConfiguration(getComponentName());

    // Get the configuration for the class
    configuredClass = config.getString("[@class]");
    if (context != null) {
        context.addBundleListener(this);
    }/*from www  . j  av  a  2  s.  co m*/
}