Example usage for org.apache.commons.configuration Configuration subset

List of usage examples for org.apache.commons.configuration Configuration subset

Introduction

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

Prototype

Configuration subset(String prefix);

Source Link

Document

Return a decorator Configuration containing every key from the current Configuration that starts with the specified prefix.

Usage

From source file:org.seedstack.solr.internal.SolrPlugin.java

@Override
@SuppressWarnings("unchecked")
public InitState init(InitContext initContext) {
    Application application = initContext.dependency(ApplicationPlugin.class).getApplication();
    TransactionPlugin transactionPlugin = initContext.dependency(TransactionPlugin.class);
    Configuration solrConfiguration = application.getConfiguration()
            .subset(SolrPlugin.SOLR_PLUGIN_CONFIGURATION_PREFIX);

    String[] solrClients = solrConfiguration.getStringArray("clients");

    if (solrClients == null || solrClients.length == 0) {
        LOGGER.info("No Solr client configured, Solr support disabled");
        return InitState.INITIALIZED;
    }/*from  w  ww  .  j  ava  2s.  com*/

    for (String solrClient : solrClients) {
        Configuration solrClientConfiguration = solrConfiguration.subset("client." + solrClient);

        try {
            this.solrClients.put(solrClient, buildSolrClient(solrClientConfiguration));
        } catch (Exception e) {
            throw SeedException.wrap(e, SolrErrorCodes.UNABLE_TO_CREATE_CLIENT).put("clientName", solrClient);
        }

        String exceptionHandler = solrClientConfiguration.getString("exception-handler");
        if (exceptionHandler != null && !exceptionHandler.isEmpty()) {
            try {
                solrTransactionHandlers.put(solrClient,
                        (Class<? extends SolrExceptionHandler>) Class.forName(exceptionHandler));
            } catch (Exception e) {
                throw new PluginException("Unable to load class " + exceptionHandler, e);
            }
        }
    }

    if (solrClients.length == 1) {
        SolrTransactionMetadataResolver.defaultSolrClient = solrClients[0];
    }

    transactionPlugin.registerTransactionHandler(SolrTransactionHandler.class);

    return InitState.INITIALIZED;
}

From source file:org.seedstack.spring.internal.SpringPlugin.java

@Override
public InitState init(InitContext initContext) {
    configurationProvider = initContext.dependency(ConfigurationProvider.class);
    Configuration configuration = configurationProvider.getConfiguration();
    Configuration springConfiguration = configuration.subset(SPRING_PLUGIN_CONFIGURATION_PREFIX);

    Map<String, Collection<String>> scannedApplicationContexts = initContext.mapResourcesByRegex();

    SeedConfigurationFactoryBean.configuration = configuration;

    boolean autodetect = springConfiguration.getBoolean("autodetect", true);
    managedTransaction = springConfiguration.getBoolean("manage-transactions", false);
    for (String applicationContextPath : scannedApplicationContexts.get(APPLICATION_CONTEXT_REGEX)) {
        if (autodetect && applicationContextPath.startsWith("META-INF/spring")) {
            applicationContextsPaths.add(applicationContextPath);
            LOGGER.trace("Autodetected spring context at " + applicationContextPath);
        }//  www.j  a v a2 s  .  c  om
    }

    if (springConfiguration.containsKey("contexts")) {
        String[] explicitContexts = springConfiguration.getStringArray("contexts");
        for (String explicitContext : explicitContexts) {
            applicationContextsPaths.add(explicitContext);
            LOGGER.trace("Configured spring context at " + explicitContext);
        }
    } else if (springConfiguration.containsKey("context")) {
        String explicitContext = springConfiguration.getString("context");
        applicationContextsPaths.add(explicitContext);
        LOGGER.trace("Configured spring context at " + explicitContext);
    }

    LOGGER.info("Initializing spring context(s) " + applicationContextsPaths);
    globalApplicationContext = new ClassPathXmlApplicationContext(
            this.applicationContextsPaths.toArray(new String[this.applicationContextsPaths.size()]));
    return InitState.INITIALIZED;
}

From source file:org.seedstack.swagger.internal.SwaggerConfiguration.java

SwaggerConfiguration init(Configuration configuration) {
    Configuration swaggerConfiguration = configuration.subset(PREFIX);
    if (swaggerConfiguration.containsKey("title")) {
        this.title = swaggerConfiguration.getString("title");
    }//from  w ww  . j  a  v a2  s  .  co  m
    this.description = swaggerConfiguration.getString("description");
    if (swaggerConfiguration.containsKey("version")) {
        this.version = swaggerConfiguration.getString("version");
    }
    this.host = swaggerConfiguration.getString("host");
    this.schemes = arrayToList(swaggerConfiguration.getStringArray("schemes"));
    this.basePath = swaggerConfiguration.getString("base-path");
    this.prettyPrint = swaggerConfiguration.getBoolean("pretty-print", false);
    this.termsOfServiceUrl = swaggerConfiguration.getString("terms-of-service-url");
    this.contactName = swaggerConfiguration.getString("contact.name");
    this.contactUrl = swaggerConfiguration.getString("contact.url");
    this.contactEmail = swaggerConfiguration.getString("contact.email");
    this.licenseName = swaggerConfiguration.getString("license.name");
    this.licenseUrl = swaggerConfiguration.getString("license.url");
    this.filterClass = swaggerConfiguration.getString("filterClass");
    return this;
}

From source file:org.topazproject.mulgara.resolver.CacheInvalidator.java

/** 
 * Create a new cache-invalidator instance. 
 * /*from  ww w. j  a  va2  s.  c  o  m*/
 * @param config  the configuration to use
 * @param base    the prefix under which the current <var>config</var> was retrieved
 * @param sf      the session-factory we belong to
 * @param dbURI   the uri of our database
 * @throws Exception 
 */
public CacheInvalidator(Configuration config, String base, SessionFactory sf, URI dbURI) throws Exception {
    super(0, getInvIval(config), "CacheInvalidator-Worker", false, logger);
    xaResource = new CIXAResource();

    config = config.subset("cacheInvalidator");
    base += ".cacheInvalidator";

    // parse the rules file
    String rulesLoc = config.getString("rulesFile", null);
    if (rulesLoc == null)
        throw new IOException("Missing configuration entry '" + base + ".rulesFile");

    URL loc = findResOrURL(rulesLoc);
    if (loc == null)
        throw new IOException("Rules-file '" + rulesLoc + "' not found");

    DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance();
    builderFactory.setIgnoringComments(true);
    builderFactory.setCoalescing(true);

    DocumentBuilder builder = builderFactory.newDocumentBuilder();
    Element rules = builder.parse(new InputSource(loc.toString())).getDocumentElement();

    this.aliases = parseAliases(rules, dbURI);
    this.rules = parseRules(rules, aliases);

    // set up the Ehcache
    disableJULInfoMessages();
    String ehcConfigLoc = config.getString("ehcacheConfig", null);
    boolean useSingleton = config.getBoolean("useSharedCacheManager", false);
    if (ehcConfigLoc != null) {
        loc = findResOrURL(ehcConfigLoc);
        if (loc == null)
            throw new IOException("Ehcache config file '" + ehcConfigLoc + "' not found");

        cacheManager = useSingleton ? CacheManager.create(loc) : new CacheManager(loc);
    } else {
        cacheManager = useSingleton ? CacheManager.create() : new CacheManager();
    }

    String qcName = config.getString("queryCache", DEF_QC_NAME);
    queryCache = cacheManager.getEhcache(qcName);
    if (queryCache != null)
        logger.info("Using cache '" + qcName + "' for the query caching");
    else
        logger.info("No cache named '" + qcName + "' found - disabling query caching");

    // delay session creation because at this point we're already in a session-creation call
    sessFactory = sf;

    // we're ready
    worker.start();
}

From source file:org.topazproject.mulgara.resolver.FilterResolverFactory.java

/**
 * Instantiate a {@link FilterResolverFactory}.
 *///from  www.j  av a2 s .  c  om
private FilterResolverFactory(ResolverFactoryInitializer resolverFactoryInitializer)
        throws InitializerException {
    // Validate parameters
    if (resolverFactoryInitializer == null)
        throw new IllegalArgumentException("Null \"resolverFactoryInitializer\" parameter");

    // Claim the filter graph type
    resolverFactoryInitializer.addModelType(FilterResolver.GRAPH_TYPE, this);

    /*
      Nasty hack to deal with change from "models" to "graphs"
      Necessary for WebAppListenerInitModels.dropObsoleteGraphs() to work
      TODO: Remove this after 0.9.2
    */
    resolverFactoryInitializer.addModelType(URI.create("http://topazproject.org/models#filter"), this);
    // end nasty hack

    // remember the database uri
    dbURI = resolverFactoryInitializer.getDatabaseURI();

    // remember the system-graph type
    sysGraphType = resolverFactoryInitializer.getSystemModelType();

    // load the configuration
    Configuration config = null;

    String fConf = System.getProperty(CONFIG_FACTORY_CONFIG_PROPERTY, DEFAULT_FACTORY_CONFIG);
    URL fConfUrl = null;
    try {
        fConfUrl = fConf.startsWith("/") ? getClass().getResource(fConf) : new URL(fConf);
        if (fConfUrl == null)
            throw new InitializerException("'" + fConf + "' not found in classpath");

        logger.info("Using filter-resolver config '" + fConfUrl + "'");

        DefaultConfigurationBuilder builder = new DefaultConfigurationBuilder(fConfUrl);
        config = builder.getConfiguration();
    } catch (MalformedURLException mue) {
        throw new InitializerException("Error parsing '" + fConf + "'", mue);
    } catch (ConfigurationException ce) {
        throw new InitializerException("Error reading '" + fConfUrl + "'", ce);
    } catch (RuntimeException re) {
        throw new InitializerException("Configuration error '" + fConfUrl + "'", re);
    }

    String base = "topaz.fr";
    config = config.subset(base);

    // Set up the filter handlers
    SessionFactory sf = resolverFactoryInitializer.getSessionFactory();

    List<FilterHandler> hList = new ArrayList<FilterHandler>();
    for (int idx = 0;; idx++) {
        String handlerClsName = config.getString("filterHandler.class_" + idx, null);
        if (handlerClsName == null)
            break;

        handlerClsName = handlerClsName.trim();
        if (handlerClsName.length() == 0)
            continue;

        hList.add(instantiateHandler(handlerClsName, config, base, sf, dbURI));
        logger.info("Loaded handler '" + handlerClsName + "'");
    }

    if (hList.size() == 0)
        logger.info("No handlers configured");

    handlers = hList.toArray(new FilterHandler[hList.size()]);
}

From source file:org.topazproject.mulgara.resolver.TransactionLogger.java

/** 
 * Create a new logger instance. //from   www .ja v  a 2s .c  o m
 * 
 * @param config  the configuration to use
 * @param base    the prefix under which the current <var>config</var> was retrieved
 * @param sf      ignored
 * @param dbURI   ignored
 * @throws IOException 
 */
public TransactionLogger(Configuration config, String base, SessionFactory sf, URI dbURI) throws IOException {
    super(getFlushIval(config), 0, "TransactionLogger-Worker", true, logger);

    config = config.subset("transactionLogger");
    base += ".transactionLogger";

    String fileName = config.getString("log.fileName", null);
    long maxSize = config.getLong("log.maxSize", -1L);
    long maxAge = config.getLong("log.maxAge", -1L);
    int bufSize = config.getInt("writeBufferSize", -1);

    if (fileName == null)
        throw new IllegalArgumentException("Missing configuration entry '" + base + ".log.fileName'");

    txLog = new TxLog(fileName, maxSize, maxAge, bufSize);
    worker.start();
}

From source file:org.wso2.andes.configuration.qpid.plugins.ConfigurationPlugin.java

private void offerRemainingConfigurationToOtherPlugins(String path, Configuration configuration,
        Set<String> elements) throws ConfigurationException {
    final IApplicationRegistry appRegistry = safeGetApplicationRegistryInstance();

    if (appRegistry == null) {
        // We see this happen during shutdown due to asynchronous reconfig using IO threads.
        // Need to remove the responsibility for offering configuration to other class.
        _logger.info("Cannot offer remaining config to other plugins, can't find app registry");
        return;/*from  w  ww .  j  a  v a  2 s . c  o m*/
    }

    final ConfigurationManager configurationManager = appRegistry.getConfigurationManager();
    // Process the elements in the configuration
    for (String element : elements) {
        Configuration handled = element.length() == 0 ? configuration : configuration.subset(element);

        String configurationElement = element;
        if (path.length() > 0) {
            configurationElement = path + "." + configurationElement;
        }

        List<ConfigurationPlugin> handlers = configurationManager.getConfigurationPlugins(configurationElement,
                handled);

        if (_logger.isDebugEnabled()) {
            _logger.debug("For '" + element + "' found handlers (" + handlers.size() + "):" + handlers);
        }

        for (ConfigurationPlugin plugin : handlers) {
            _pluginConfiguration.put(plugin.getClass().getName(), plugin);
        }
    }
}

From source file:org.wso2.andes.configuration.qpid.ServerConfiguration.java

@SuppressWarnings("unchecked")
protected void setupVirtualHosts(org.apache.commons.configuration.Configuration conf)
        throws ConfigurationException {

    String[] vhostFiles = conf.getStringArray("virtualhosts");
    org.apache.commons.configuration.Configuration vhostConfig = conf.subset("virtualhosts");

    // Only one configuration mechanism allowed
    if (!(vhostFiles.length == 0) && !vhostConfig.subset("virtualhost").isEmpty()) {
        throw new ConfigurationException(
                "Only one of external or embedded virtualhosts configuration allowed.");
    }//w w w  . j  av a 2  s . c  om

    // We can only have one vhosts XML file included
    if (vhostFiles.length > 1) {
        throw new ConfigurationException(
                "Only one external virtualhosts configuration file allowed, " + "multiple filenames found.");
    }

    // Virtualhost configuration object
    org.apache.commons.configuration.Configuration vhostConfiguration = new HierarchicalConfiguration();

    // Load from embedded configuration if possible
    if (!vhostConfig.subset("virtualhost").isEmpty()) {
        vhostConfiguration = vhostConfig;
    } else {
        // Load from the external configuration if possible
        for (String fileName : vhostFiles) {
            // Open the vhosts XML file and copy values from it to our config
            _vhostsFile = new File(fileName);
            if (!_vhostsFile.exists()) {
                throw new ConfigurationException("Virtualhosts file does not exist");
            }
            vhostConfiguration = parseConfig(new File(fileName));

            // save the default virtualhost name
            String defaultVirtualHost = vhostConfiguration.getString("default");
            _configuration.setProperty("virtualhosts.default", defaultVirtualHost);
        }
    }

    // Now extract the virtual host names from the configuration object
    List hosts = vhostConfiguration.getList("virtualhost.name");
    for (Object host : hosts) {
        String name = (String) host;

        // Add the virtual hosts to the server configuration
        VirtualHostConfiguration virtualhost = new VirtualHostConfiguration(name,
                vhostConfiguration.subset("virtualhost." + name));
        _virtualHosts.put(virtualhost.getName(), virtualhost);
    }
}

From source file:org.wso2.andes.configuration.qpid.ServerConfiguration.java

public void reparseConfigFileSecuritySections() throws ConfigurationException {
    if (_configFile != null) {
        org.apache.commons.configuration.Configuration newConfig = parseConfig(_configFile);
        setConfiguration("", newConfig);
        ApplicationRegistry.getInstance().getSecurityManager().configureHostPlugins(this);

        // Reload virtualhosts from correct location
        org.apache.commons.configuration.Configuration newVhosts;
        if (_vhostsFile == null) {
            newVhosts = newConfig.subset("virtualhosts");
        } else {/* ww w .j ava 2 s. c  om*/
            newVhosts = parseConfig(_vhostsFile);
        }

        VirtualHostRegistry vhostRegistry = ApplicationRegistry.getInstance().getVirtualHostRegistry();
        for (String hostName : _virtualHosts.keySet()) {
            VirtualHost vhost = vhostRegistry.getVirtualHost(hostName);
            Configuration vhostConfig = newVhosts.subset("virtualhost." + hostName);
            vhost.getConfiguration().setConfiguration("virtualhosts.virtualhost", vhostConfig); // XXX
            vhost.getSecurityManager().configureGlobalPlugins(this);
            vhost.getSecurityManager().configureHostPlugins(vhost.getConfiguration());
        }

        _logger.warn(SECURITY_CONFIG_RELOADED);
    }
}

From source file:org.wso2.andes.configuration.qpid.VirtualHostConfiguration.java

/**
 * Apply the given configuration to this VirtualHostConfiguration
 *
 * @param config//from   w  w  w  . ja va2s  .  c  o m
 *         the config to apply
 * @throws ConfigurationException
 *         if a problem occurs with configuration
 */
public void setConfiguration(Configuration config) throws ConfigurationException {
    setConfiguration("virtualhosts.virtualhost", config);

    Iterator i = getListValue("queues.queue.name").iterator();

    while (i.hasNext()) {
        String queueName = (String) i.next();
        _queues.put(queueName, new QueueConfiguration(queueName, this));
    }

    i = getListValue("exchanges.exchange.name").iterator();
    int count = 0;
    while (i.hasNext()) {
        CompositeConfiguration mungedConf = new CompositeConfiguration();
        mungedConf.addConfiguration(config.subset("exchanges.exchange(" + count++ + ")"));
        mungedConf.addConfiguration(_configuration.subset("exchanges"));
        String exchName = (String) i.next();
        _exchanges.put(exchName, new ExchangeConfiguration(exchName, mungedConf));
    }
}