List of usage examples for org.apache.commons.configuration CombinedConfiguration addConfiguration
public void addConfiguration(AbstractConfiguration config)
From source file:org.ambraproject.configuration.ConfigurationStore.java
public static void addJournalResources(CombinedConfiguration root, CombinedConfiguration defaults, String path) throws ConfigurationException { Collection<String> journals = root.getList(JOURNALS); String journalTemplatePath = root.getString(ConfigurationStore.JOURNAL_TEMPLATE_DIR, "/"); for (String journal : journals) { String resourcePath = journalTemplatePath + (journalTemplatePath.endsWith("/") ? "journals/" : "/journals/") + journal + path; File defaultsXmlFile = new File(resourcePath); if (defaultsXmlFile.isFile() && defaultsXmlFile.canRead()) { defaults.addConfiguration(new XMLConfiguration(defaultsXmlFile)); log.info("Added resource '" + resourcePath + "' to configuration"); }// w w w . jav a2 s. co m } }
From source file:org.apache.james.container.spring.bean.factory.mailrepositorystore.MailRepositoryStoreBeanFactory.java
/** * This method accept a Configuration object as hint and return the * corresponding MailRepository. The Configuration must be in the form of: * <p/>//www. j a v a 2 s . c o m * <pre> * <repository destinationURL="[URL of this mail repository]" * type="[repository type ex. OBJECT or STREAM or MAIL etc.]" * model="[repository model ex. PERSISTENT or CACHE etc.]"> * [addition configuration] * </repository> * </pre> * * @param destination the destinationURL used to look up the repository * @return the selected repository * @throws MailRepositoryStoreException if any error occurs while parsing the Configuration or * retrieving the MailRepository */ @SuppressWarnings("deprecation") public synchronized MailRepository select(String destination) throws MailRepositoryStoreException { int idx = destination.indexOf(':'); if (idx == -1) throw new MailRepositoryStoreException("Destination is malformed. Must be a valid URL: " + destination); String protocol = destination.substring(0, idx); String repID = destination; MailRepository reply = repositories.get(repID); StringBuffer logBuffer; if (reply != null) { if (getLogger().isDebugEnabled()) { logBuffer = new StringBuffer(128).append("obtained repository: ").append(repID).append(",") .append(reply.getClass()); getLogger().debug(logBuffer.toString()); } return reply; } else { String repClass = classes.get(protocol); if (getLogger().isDebugEnabled()) { logBuffer = new StringBuffer(128).append("obtained repository: ").append(repClass) .append(" to handle: ").append(protocol).append(" with key ").append(protocol); getLogger().debug(logBuffer.toString()); } // If default values have been set, create a new repository // configuration element using the default values // and the values in the selector. // If no default values, just use the selector. final CombinedConfiguration config = new CombinedConfiguration(); HierarchicalConfiguration defConf = defaultConfigs.get(protocol); if (defConf != null) { config.addConfiguration(defConf); } DefaultConfigurationBuilder builder = new DefaultConfigurationBuilder(); builder.addProperty("[@destinationURL]", destination); config.addConfiguration(builder); try { // Use the classloader which is used for bean instance stuff @SuppressWarnings("unchecked") Class<MailRepository> clazz = (Class<MailRepository>) getBeanFactory().getBeanClassLoader() .loadClass(repClass); reply = (MailRepository) getBeanFactory().autowire(clazz, ConfigurableListableBeanFactory.AUTOWIRE_AUTODETECT, false); if (reply instanceof LogEnabled) { ((LogEnabled) reply).setLog(logger); } if (reply instanceof Configurable) { ((Configurable) reply).configure(config); } reply = (MailRepository) getBeanFactory().initializeBean(reply, protocol); repositories.put(repID, reply); if (getLogger().isInfoEnabled()) { logBuffer = new StringBuffer(128).append("added repository: ").append(repID).append("->") .append(repClass); getLogger().info(logBuffer.toString()); } return reply; } catch (Exception e) { if (getLogger().isWarnEnabled()) { getLogger().warn("Exception while creating repository:" + e.getMessage(), e); } throw new MailRepositoryStoreException("Cannot find or init repository", e); } } }
From source file:org.apache.james.mailrepository.memory.MemoryMailRepositoryStore.java
private CombinedConfiguration createRepositoryCombinedConfig(MailRepositoryUrl mailRepositoryUrl) { CombinedConfiguration config = new CombinedConfiguration(); HierarchicalConfiguration defaultProtocolConfig = perProtocolMailRepositoryDefaultConfiguration .get(mailRepositoryUrl.getProtocol()); if (defaultProtocolConfig != null) { config.addConfiguration(defaultProtocolConfig); }// w ww .j a va 2s. c om DefaultConfigurationBuilder builder = new DefaultConfigurationBuilder(); builder.addProperty("[@destinationURL]", mailRepositoryUrl.asString()); config.addConfiguration(builder); return config; }
From source file:org.apache.james.protocols.lib.ProtocolHandlerChainImpl.java
private void registerHandlersPackage(HandlersPackage handlersPackage, HierarchicalConfiguration handlerConfig, List<HierarchicalConfiguration> children) throws ConfigurationException { List<String> c = handlersPackage.getHandlers(); for (String cName : c) { try {/*from ww w. ja v a 2s. c o m*/ CombinedConfiguration conf = new CombinedConfiguration(); HierarchicalConfiguration cmdConf = addHandler(cName); conf.addConfiguration(cmdConf); if (handlerConfig != null) { conf.addConfiguration(handlerConfig); } children.add(conf); } catch (ConfigurationException e) { throw new ConfigurationException("Unable to create configuration for handler " + cName, e); } } }
From source file:org.apache.james.utils.InMemoryMailRepositoryStore.java
private CombinedConfiguration createRepositoryCombinedConfig(String destination, String protocol) { final CombinedConfiguration config = new CombinedConfiguration(); HierarchicalConfiguration defaultProtocolConfig = perProtocolMailRepositoryDefaultConfiguration .get(protocol);/*from w ww .ja v a 2 s.co m*/ if (defaultProtocolConfig != null) { config.addConfiguration(defaultProtocolConfig); } DefaultConfigurationBuilder builder = new DefaultConfigurationBuilder(); builder.addProperty("[@destinationURL]", destination); config.addConfiguration(builder); return config; }
From source file:org.chenillekit.core.services.impl.ConfigurationServiceImpl.java
/** * get the configuration from the named resource. * * @param configurationResource the configuration resource * @param mergeWithSysProps merge the configuration resource with system properties * * @return the configuration/*from w ww.j a v a 2 s.c o m*/ */ public Configuration getConfiguration(Resource configurationResource, boolean mergeWithSysProps) { Configuration configuration; assert configurationResource != null; if (!configurationResource.exists()) throw new RuntimeException( String.format("configuration resource '%s' not found", configurationResource.toString())); try { if (configurationResource.getFile().endsWith(".xml")) configuration = new XMLConfiguration(configurationResource.toURL()); else if (configurationResource.getFile().endsWith(".properties")) configuration = new PropertiesConfiguration(configurationResource.toURL()); else if (configurationResource.getFile().endsWith(".plist")) configuration = new PropertyListConfiguration(configurationResource.toURL()); else if (configurationResource.getFile().endsWith(".plist")) configuration = new PropertyListConfiguration(configurationResource.toURL()); else if (configurationResource.getFile().endsWith(".ini")) configuration = new HierarchicalINIConfiguration(configurationResource.toURL()); else throw new RuntimeException(String.format("cant resolve configuration type of resource '%s'", configurationResource.toString())); if (mergeWithSysProps) { CombinedConfiguration mergedConfiguration = new CombinedConfiguration(); mergedConfiguration.addConfiguration((AbstractConfiguration) configuration); mergedConfiguration.addConfiguration((AbstractConfiguration) getConfiguration()); configuration = mergedConfiguration; } } catch (ConfigurationException e) { throw new RuntimeException(e); } return configuration; }