List of usage examples for org.apache.commons.configuration Configuration subset
Configuration subset(String prefix);
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)); } }