Example usage for org.apache.commons.configuration XMLConfiguration getRootElementName

List of usage examples for org.apache.commons.configuration XMLConfiguration getRootElementName

Introduction

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

Prototype

public String getRootElementName() 

Source Link

Document

Returns the name of the root element.

Usage

From source file:com.norconex.collector.http.crawler.HttpCrawlerConfigLoader.java

/**
 * Loads a crawler configuration, which can be either the default
 * crawler or real crawler configuration instances
 * (keeping defaults)./*from w w  w. j a va  2  s.  com*/
 * @param config crawler configuration to populate/overwrite
 * @param node the node representing the crawler configuration.
 * @throws HttpCollectorException problem parsing crawler configuration
 */
private static void loadCrawlerConfig(HttpCrawlerConfig config, XMLConfiguration node) {
    //--- General Configuration --------------------------------------------
    if (node == null) {
        LOG.warn("Passing a null configuration for " + config.getId() + ", skipping.");
        return;
    }
    boolean loadingDefaults = "crawlerDefaults".equalsIgnoreCase(node.getRootElementName());

    if (!loadingDefaults) {
        String crawlerId = node.getString("[@id]", null);
        if (StringUtils.isBlank(crawlerId)) {
            throw new HttpCollectorException("Crawler ID is missing in configuration.");
        }
        config.setId(crawlerId);
    }

    config.setUrlNormalizer(ConfigurationUtil.newInstance(node, "urlNormalizer", config.getUrlNormalizer()));
    config.setDelayResolver(ConfigurationUtil.newInstance(node, "delay", config.getDelayResolver()));
    config.setNumThreads(node.getInt("numThreads", config.getNumThreads()));
    config.setMaxDepth(node.getInt("maxDepth", config.getMaxDepth()));
    config.setMaxURLs(node.getInt("maxURLs", config.getMaxURLs()));
    config.setWorkDir(new File(node.getString("workDir", config.getWorkDir().toString())));
    config.setKeepDownloads(node.getBoolean("keepDownloads", config.isKeepDownloads()));
    config.setDeleteOrphans(node.getBoolean("deleteOrphans", config.isDeleteOrphans()));

    String[] startURLs = node.getStringArray("startURLs.url");
    config.setStartURLs(defaultIfEmpty(startURLs, config.getStartURLs()));

    IHttpCrawlerEventListener[] crawlerListeners = loadListeners(node, "crawlerListeners.listener");
    config.setCrawlerListeners(defaultIfEmpty(crawlerListeners, config.getCrawlerListeners()));

    config.setCrawlURLDatabaseFactory(ConfigurationUtil.newInstance(node, "crawlURLDatabaseFactory",
            config.getCrawlURLDatabaseFactory()));

    //--- HTTP Initializer -------------------------------------------------
    config.setHttpClientInitializer(
            ConfigurationUtil.newInstance(node, "httpClientInitializer", config.getHttpClientInitializer()));

    //--- URL Filters ------------------------------------------------------
    IURLFilter[] urlFilters = loadURLFilters(node, "httpURLFilters.filter");
    config.setURLFilters(defaultIfEmpty(urlFilters, config.getURLFilters()));

    //--- RobotsTxt provider -----------------------------------------------
    config.setRobotsTxtProvider(
            ConfigurationUtil.newInstance(node, "robotsTxt", config.getRobotsTxtProvider()));
    config.setIgnoreRobotsTxt(node.getBoolean("robotsTxt[@ignore]", config.isIgnoreRobotsTxt()));

    //--- Sitemap Resolver -------------------------------------------------
    config.setSitemapResolver(ConfigurationUtil.newInstance(node, "sitemap", config.getSitemapResolver()));
    config.setIgnoreSitemap(node.getBoolean("sitemap[@ignore]", config.isIgnoreSitemap()));

    //--- HTTP Headers Fetcher ---------------------------------------------
    config.setHttpHeadersFetcher(
            ConfigurationUtil.newInstance(node, "httpHeadersFetcher", config.getHttpHeadersFetcher()));

    //--- HTTP Headers Filters ---------------------------------------------
    IHttpHeadersFilter[] headersFilters = loadHeadersFilters(node, "httpHeadersFilters.filter");
    config.setHttpHeadersFilters(defaultIfEmpty(headersFilters, config.getHttpHeadersFilters()));

    //--- HTTP Headers Checksummer -----------------------------------------
    config.setHttpHeadersChecksummer(
            ConfigurationUtil.newInstance(node, "httpHeadersChecksummer", config.getHttpHeadersChecksummer()));

    //--- HTTP Document Fetcher --------------------------------------------
    config.setHttpDocumentFetcher(
            ConfigurationUtil.newInstance(node, "httpDocumentFetcher", config.getHttpDocumentFetcher()));

    //--- RobotsMeta provider ----------------------------------------------
    config.setRobotsMetaProvider(
            ConfigurationUtil.newInstance(node, "robotsMeta", config.getRobotsMetaProvider()));
    config.setIgnoreRobotsMeta(node.getBoolean("robotsMeta[@ignore]", config.isIgnoreRobotsMeta()));

    //--- URL Extractor ----------------------------------------------------
    config.setUrlExtractor(ConfigurationUtil.newInstance(node, "urlExtractor", config.getUrlExtractor()));

    //--- Document Filters -------------------------------------------------
    IHttpDocumentFilter[] docFilters = loadDocumentFilters(node, "httpDocumentFilters.filter");
    config.setHttpDocumentfilters(defaultIfEmpty(docFilters, config.getHttpDocumentfilters()));

    //--- HTTP Pre-Processors ----------------------------------------------
    IHttpDocumentProcessor[] preProcFilters = loadProcessors(node, "preImportProcessors.processor");
    config.setPreImportProcessors(defaultIfEmpty(preProcFilters, config.getPreImportProcessors()));

    //--- IMPORTER ---------------------------------------------------------
    XMLConfiguration importerNode = ConfigurationUtil.getXmlAt(node, "importer");
    ImporterConfig importerConfig = ImporterConfigLoader.loadImporterConfig(importerNode);
    config.setImporterConfig(ObjectUtils.defaultIfNull(importerConfig, config.getImporterConfig()));

    //--- HTTP Post-Processors ---------------------------------------------
    IHttpDocumentProcessor[] postProcFilters = loadProcessors(node, "postImportProcessors.processor");
    config.setPostImportProcessors(defaultIfEmpty(postProcFilters, config.getPostImportProcessors()));

    //--- HTTP Document Checksummer -----------------------------------------
    config.setHttpDocumentChecksummer(ConfigurationUtil.newInstance(node, "httpDocumentChecksummer",
            config.getHttpDocumentChecksummer()));

    //--- Document Committers ----------------------------------------------
    config.setCommitter(ConfigurationUtil.newInstance(node, "committer", config.getCommitter()));
}

From source file:com.norconex.collector.core.crawler.CrawlerConfigLoader.java

/**
 * Loads a crawler configuration, which can be either the default
 * crawler or real crawler configuration instances
 * (keeping defaults).//from  w ww.j  a v a2s  . c o m
 * @param config crawler configuration to populate/overwrite
 * @param node the node representing the crawler configuration.
 * @throws IOException problem loading crawler configuration
 */
public void loadCrawlerConfig(ICrawlerConfig config, XMLConfiguration node) throws IOException {
    if (node == null) {
        LOG.warn("Passing a null configuration for " + config.getId() + ", skipping.");
        return;
    }
    boolean loadingDefaults = "crawlerDefaults".equalsIgnoreCase(node.getRootElementName());

    if (!loadingDefaults) {
        String crawlerId = node.getString("[@id]", null);
        if (StringUtils.isBlank(crawlerId)) {
            throw new CollectorException("Crawler ID is missing in configuration.");
        }
    }
    config.loadFromXML(ConfigurationUtil.newReader(node));
}

From source file:io.datalayer.conf.XmlConfigurationTest.java

/**
 * Tests whether the name of the root element is copied when a configuration
 * is created using the copy constructor.
 *//*www  . j ava2s.c  o m*/
@Test
public void testCopyRootName() throws ConfigurationException {
    final String rootName = "rootElement";
    final String xml = "<" + rootName + "><test>true</test></" + rootName + ">";
    conf.clear();
    conf.load(new StringReader(xml));
    XMLConfiguration copy = new XMLConfiguration(conf);
    assertEquals("Wrong name of root element", rootName, copy.getRootElementName());
    copy.save(testSaveConf);
    copy = new XMLConfiguration(testSaveConf);
    assertEquals("Wrong name of root element after save", rootName, copy.getRootElementName());
}

From source file:io.datalayer.conf.XmlConfigurationTest.java

/**
 * Tests whether the name of the root element is copied for a configuration
 * for which not yet a document exists.//from w w w.ja  va  2 s  .  com
 */
@Test
public void testCopyRootNameNoDocument() throws ConfigurationException {
    final String rootName = "rootElement";
    conf = new XMLConfiguration();
    conf.setRootElementName(rootName);
    conf.setProperty("test", Boolean.TRUE);
    XMLConfiguration copy = new XMLConfiguration(conf);
    assertEquals("Wrong name of root element", rootName, copy.getRootElementName());
    copy.save(testSaveConf);
    copy = new XMLConfiguration(testSaveConf);
    assertEquals("Wrong name of root element after save", rootName, copy.getRootElementName());
}

From source file:io.datalayer.conf.XmlConfigurationTest.java

/**
 * Tests saving a configuration that was created from a hierarchical
 * configuration. This test exposes bug CONFIGURATION-301.
 *//*from  www . j  av  a2 s.c  o  m*/
@Test
public void testSaveAfterCreateWithCopyConstructor() throws ConfigurationException {
    HierarchicalConfiguration hc = conf.configurationAt("element2");
    conf = new XMLConfiguration(hc);
    conf.save(testSaveConf);
    XMLConfiguration checkConfig = new XMLConfiguration();
    checkConfig.setFile(testSaveConf);
    checkSavedConfig(checkConfig);
    assertEquals("Wrong name of root element", "element2", checkConfig.getRootElementName());
}