List of usage examples for org.apache.commons.configuration HierarchicalConfiguration getString
public String getString(String key)
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*/ }