Author: rgoers
Date: Thu Apr 2 05:42:41 2009
New Revision: 761171
URL: http://svn.apache.org/viewvc?rev=761171&view=rev
Log:
Fix Checkstyle errors, add documentation, allow FileSystem to be configured in
DefaultConfigurationBuilder
Added:
commons/proper/configuration/trunk/conf/testFileSystem.xml
- copied, changed from r760159,
commons/proper/configuration/trunk/conf/testConfigurationProvider.xml
commons/proper/configuration/trunk/xdocs/userguide/howto_filesystems.xml
(with props)
Modified:
commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/DefaultConfigurationBuilder.java
commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/reloading/VFSFileMonitorReloadingStrategy.java
commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/tree/MergeCombiner.java
commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/tree/NodeCombiner.java
commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestVFSConfigurationBuilder.java
commons/proper/configuration/trunk/xdocs/building.xml
commons/proper/configuration/trunk/xdocs/userguide/howto_combinedconfiguration.xml
commons/proper/configuration/trunk/xdocs/userguide/user_guide.xml
Copied: commons/proper/configuration/trunk/conf/testFileSystem.xml (from
r760159, commons/proper/configuration/trunk/conf/testConfigurationProvider.xml)
URL:
http://svn.apache.org/viewvc/commons/proper/configuration/trunk/conf/testFileSystem.xml?p2=commons/proper/configuration/trunk/conf/testFileSystem.xml&p1=commons/proper/configuration/trunk/conf/testConfigurationProvider.xml&r1=760159&r2=761171&rev=761171&view=diff
==============================================================================
--- commons/proper/configuration/trunk/conf/testConfigurationProvider.xml
(original)
+++ commons/proper/configuration/trunk/conf/testFileSystem.xml Thu Apr 2
05:42:41 2009
@@ -6,6 +6,7 @@
<nodeCombiner
config-class="org.apache.commons.configuration.tree.OverrideCombiner"/>
<expressionEngine
config-class="org.apache.commons.configuration.tree.xpath.XPathExpressionEngine"/>
</result>
+ <fileSystem config-class="org.apache.commons.configuration.VFSFileSystem"/>
<providers>
<provider config-tag="test"
config-class="org.apache.commons.configuration.DefaultConfigurationBuilder$FileConfigurationProvider"/>
Modified:
commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/DefaultConfigurationBuilder.java
URL:
http://svn.apache.org/viewvc/commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/DefaultConfigurationBuilder.java?rev=761171&r1=761170&r2=761171&view=diff
==============================================================================
---
commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/DefaultConfigurationBuilder.java
(original)
+++
commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/DefaultConfigurationBuilder.java
Thu Apr 2 05:42:41 2009
@@ -342,6 +342,11 @@
static final String KEY_LOOKUP_KEY = XMLBeanDeclaration.ATTR_PREFIX +
"prefix]";
/**
+ * Constance for the FileSystem.
+ */
+ static final String FILE_SYSTEM = SEC_HEADER + ".fileSystem";
+
+ /**
* Constant for the key of the result declaration. This key can point to a
* bean declaration, which defines properties of the resulting combined
* configuration.
@@ -486,17 +491,6 @@
}
/**
- * Sets the FileSystem to use for the created CombinedConfiguration and
- * @param fileSystem The FileSystem
- */
- public void setFileSystem(FileSystem fileSystem)
- {
- FileSystem.setDefaultFileSystem(fileSystem);
- }
-
-
-
- /**
* Adds a configuration provider for the specified tag. Whenever this tag
is
* encountered in the configuration definition file this provider will be
* called to create the configuration object.
@@ -577,6 +571,7 @@
load();
}
+ initFileSystem();
initSystemProperties();
configureEntityResolver();
registerConfiguredProviders();
@@ -712,6 +707,16 @@
}
}
+ protected void initFileSystem() throws ConfigurationException
+ {
+ if (getMaxIndex(FILE_SYSTEM) == 0)
+ {
+ HierarchicalConfiguration config = configurationAt(FILE_SYSTEM);
+ XMLBeanDeclaration decl = new XMLBeanDeclaration(config);
+ setFileSystem((FileSystem) BeanHelper.createBean(decl));
+ }
+ }
+
/**
* If a property file is configured add the properties to the System
properties.
* @throws ConfigurationException if an error occurs.
@@ -1342,6 +1347,14 @@
ConfigurationDeclaration decl) throws Exception
{
AbstractConfiguration result = getEmptyConfiguration(decl);
+ if (result instanceof FileSystemBased)
+ {
+ DefaultConfigurationBuilder builder =
decl.getConfigurationBuilder();
+ if (builder.getFileSystem() != null)
+ {
+ ((FileSystemBased)
result).setFileSystem(builder.getFileSystem());
+ }
+ }
((FileConfiguration) result).load();
return result;
}
Modified:
commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/reloading/VFSFileMonitorReloadingStrategy.java
URL:
http://svn.apache.org/viewvc/commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/reloading/VFSFileMonitorReloadingStrategy.java?rev=761171&r1=761170&r2=761171&view=diff
==============================================================================
---
commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/reloading/VFSFileMonitorReloadingStrategy.java
(original)
+++
commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/reloading/VFSFileMonitorReloadingStrategy.java
Thu Apr 2 05:42:41 2009
@@ -55,7 +55,7 @@
private static final long DEFAULT_DELAY = 1000;
/** Stores a reference to the configuration to be monitored. */
- protected FileConfiguration configuration;
+ protected FileConfiguration configuration;
/** The reload status */
private boolean reloadRequired;
Modified:
commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/tree/MergeCombiner.java
URL:
http://svn.apache.org/viewvc/commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/tree/MergeCombiner.java?rev=761171&r1=761170&r2=761171&view=diff
==============================================================================
---
commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/tree/MergeCombiner.java
(original)
+++
commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/tree/MergeCombiner.java
Thu Apr 2 05:42:41 2009
@@ -58,7 +58,7 @@
printTree(result);
return result;
}
-
+
public ConfigurationNode doCombine(ConfigurationNode node1,
ConfigurationNode node2)
{
ViewNode result = createViewNode();
@@ -142,7 +142,7 @@
ConfigurationNode attr1 = (ConfigurationNode) iter.next();
List list2 = node.getAttributes(attr1.getName());
if (list2.size() == 1
- &&
!attr1.getValue().equals(((ConfigurationNode)list2.get(0)).getValue()))
+ && !attr1.getValue().equals(((ConfigurationNode)
list2.get(0)).getValue()))
{
node = null;
break;
@@ -165,8 +165,8 @@
{
children2.remove(iter.next());
}
- }
+ }
return null;
}
-}
\ No newline at end of file
+}
Modified:
commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/tree/NodeCombiner.java
URL:
http://svn.apache.org/viewvc/commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/tree/NodeCombiner.java?rev=761171&r1=761170&r2=761171&view=diff
==============================================================================
---
commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/tree/NodeCombiner.java
(original)
+++
commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/tree/NodeCombiner.java
Thu Apr 2 05:42:41 2009
@@ -54,12 +54,12 @@
*/
public abstract class NodeCombiner
{
- /** Stream to write debug output to */
- private PrintStream debugStream = null;
-
/** Stores a list with node names that are known to be list nodes. */
protected Set listNodes;
+ /** Stream to write debug output to */
+ private PrintStream debugStream;
+
/**
* Creates a new instance of <code>NodeCombiner</code>.
*/
@@ -135,7 +135,7 @@
{
this.debugStream = stream;
}
-
+
protected void printTree(ConfigurationNode result)
{
if (debugStream != null)
Modified:
commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestVFSConfigurationBuilder.java
URL:
http://svn.apache.org/viewvc/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestVFSConfigurationBuilder.java?rev=761171&r1=761170&r2=761171&view=diff
==============================================================================
---
commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestVFSConfigurationBuilder.java
(original)
+++
commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestVFSConfigurationBuilder.java
Thu Apr 2 05:42:41 2009
@@ -20,6 +20,8 @@
import java.io.IOException;
import java.util.Collection;
import java.util.Set;
+import java.util.List;
+import java.util.Iterator;
import junit.framework.TestCase;
@@ -76,6 +78,9 @@
private static final File MULTI_TENENT_FILE = new File(
"conf/testMultiTenentConfigurationBuilder.xml");
+ private static final File FILESYSTEM_FILE = new File(
+ "conf/testFileSystem.xml");
+
/** Constant for the name of an optional configuration.*/
private static final String OPTIONAL_NAME = "optionalConfig";
@@ -888,6 +893,79 @@
verify("1005", config, 50);
}
+ public void testSetFileSystem() throws Exception
+ {
+ factory.setFile(PROVIDER_FILE);
+ FileSystem fs = new VFSFileSystem();
+ factory.setFileSystem(fs);
+ FileSystem.resetDefaultFileSystem();
+ System.getProperties().remove("Id");
+
+ CombinedConfiguration config = factory.getConfiguration(true);
+ List list = config.getConfigurations();
+ assertTrue("Incorrect number of configurations - " + list.size(),
list.size() == 4);
+ Iterator iter = list.iterator();
+ while (iter.hasNext())
+ {
+ Configuration conf = (Configuration)iter.next();
+ if (conf instanceof FileSystemBased)
+ {
+ assertTrue("Incorrect file system for Configuration " + conf,
+ ((FileSystemBased)conf).getFileSystem() == fs);
+ }
+ else if (conf instanceof CombinedConfiguration)
+ {
+ Iterator it =
((CombinedConfiguration)conf).getConfigurations().iterator();
+ while (it.hasNext())
+ {
+ conf = (Configuration)it.next();
+ if (conf instanceof FileSystemBased)
+ {
+ assertTrue("Incorrect file system for Configuration "
+ conf,
+ ((FileSystemBased)conf).getFileSystem() == fs);
+ }
+ }
+ }
+ }
+ }
+
+ public void testConfiguredFileSystem() throws Exception
+ {
+ factory.setFile(FILESYSTEM_FILE);
+ FileSystem.resetDefaultFileSystem();
+ System.getProperties().remove("Id");
+
+ CombinedConfiguration config = factory.getConfiguration(true);
+ FileSystem fs = factory.getFileSystem();
+ assertNotNull("No File System",fs);
+ assertTrue("Incorrect File System", fs instanceof VFSFileSystem);
+ List list = config.getConfigurations();
+ assertTrue("Incorrect number of configurations - " + list.size(),
list.size() == 4);
+ Iterator iter = list.iterator();
+ while (iter.hasNext())
+ {
+ Configuration conf = (Configuration)iter.next();
+ if (conf instanceof FileSystemBased)
+ {
+ assertTrue("Incorrect file system for Configuration " + conf,
+ ((FileSystemBased)conf).getFileSystem() == fs);
+ }
+ else if (conf instanceof CombinedConfiguration)
+ {
+ Iterator it =
((CombinedConfiguration)conf).getConfigurations().iterator();
+ while (it.hasNext())
+ {
+ conf = (Configuration)it.next();
+ if (conf instanceof FileSystemBased)
+ {
+ assertTrue("Incorrect file system for Configuration "
+ conf,
+ ((FileSystemBased)conf).getFileSystem() == fs);
+ }
+ }
+ }
+ }
+ }
+
private void verify(String key, CombinedConfiguration config, int rows)
{
System.setProperty("Id", key);
Modified: commons/proper/configuration/trunk/xdocs/building.xml
URL:
http://svn.apache.org/viewvc/commons/proper/configuration/trunk/xdocs/building.xml?rev=761171&r1=761170&r2=761171&view=diff
==============================================================================
--- commons/proper/configuration/trunk/xdocs/building.xml (original)
+++ commons/proper/configuration/trunk/xdocs/building.xml Thu Apr 2 05:42:41
2009
@@ -36,11 +36,51 @@
</p>
</section>
- <section name="Maven Goals">
+ <section name="Maven 2">
<p>
- Maven 1.x is our recommended build tool. To build the Configuration
- jar file, change into the directory where you unzipped the source
- distribution or where you checked out the sources from SVN and run
+ Commons Configuration uses Maven 2 as its build tool. To build the
Configuration
+ jar, change into the directory where the source distribution
resides and run
+ "mvn install". This will compile the source and tests, run the
tests, and then
+ package the jar. The jar will also be copied into the local maven
repository
+ for use by other builds.
+ </p>
+ <p>
+ To build the web site run "mvn site". When it completes the web
site will reside in
+ the target/site directory and may be viewed by opening
target/site/index.html.
+ </p>
+ </section>
+ <section name="Running Functional Tests">
+ <p>
+ <code>TestWebdavConfigurationBuilder</code> is a functional test
that tests
+ DefaultConfigurationBuilder with the configuration files stored in
a WebDAV
+ server. To run the test the steps that follow
+ <ol>
+ <li>Copy all the files in the conf directory to the WebDAV
server. Not all the
+ files are required but it is generally easier to use a tool like
cadaver
+ and do an mput than try to copy the required files
individually.</li>
+ <li>Add the following to the profiles section of settings.xml in
the Maven home
+ directory. Modify the urls to match your setup.
+<source><![CDATA[
+ <profile>
+ <profile>
+ <id>webdav</id>
+ <activation>
+ <activeByDefault>false</activeByDefault>
+ </activation>
+ <properties>
+
<test.webdav.base>webdav://vfsusr:[email protected]:80/conf</test.webdav.base>
+ </properties>
+ </profile>]]></source></li>
+ <li>run "mvn -P webdav test
-Dtest=TestWebdavConfigurationBuilder". The test
+ can also be run using "mvn -P webdav test" but this will run all
the unit tests
+ in addition to the WebDAV test.</li>
+ </ol>
+ </p>
+ </section>
+ <section name="Maven 1 Goals">
+ <p>
+ To build the Configuration jar file using Maven 1, change into the
directory where you
+ unzipped the source distribution or where you checked out the
sources from SVN and run
"maven jar". The result will be in the (newly created) "target"
subdirectory.
</p>
@@ -125,7 +165,7 @@
<section name="Setting custom build parameters">
<p>
- Both the maven and the ant build script support a file called
+ Both the maven 1 and the ant build script support a file called
<code>build.properties</code> that can contain custom properties
definitions. If this file exists in the project's root directory,
it will be read and the properties it defines will be added to the
Modified:
commons/proper/configuration/trunk/xdocs/userguide/howto_combinedconfiguration.xml
URL:
http://svn.apache.org/viewvc/commons/proper/configuration/trunk/xdocs/userguide/howto_combinedconfiguration.xml?rev=761171&r1=761170&r2=761171&view=diff
==============================================================================
---
commons/proper/configuration/trunk/xdocs/userguide/howto_combinedconfiguration.xml
(original)
+++
commons/proper/configuration/trunk/xdocs/userguide/howto_combinedconfiguration.xml
Thu Apr 2 05:42:41 2009
@@ -676,7 +676,10 @@
<p>
When merging elements attributes play a critical role. If an element
has an attribute that
appears in both sources, the value of that attribute must be the same
for the elements to be
- merged. Merging is only allowed between a single node in each of the
files, so if an element
+ merged.
+ </p>
+ <p>
+ Merging is only allowed between a single node in each of the files, so
if an element
in the first file matches more than one element in the second file no
merging will take
place and the element from the first file (and its contents) are
included and the elements
in the second file are not. If the element is marked as a list node
then the elements from
Added: commons/proper/configuration/trunk/xdocs/userguide/howto_filesystems.xml
URL:
http://svn.apache.org/viewvc/commons/proper/configuration/trunk/xdocs/userguide/howto_filesystems.xml?rev=761171&view=auto
==============================================================================
--- commons/proper/configuration/trunk/xdocs/userguide/howto_filesystems.xml
(added)
+++ commons/proper/configuration/trunk/xdocs/userguide/howto_filesystems.xml
Thu Apr 2 05:42:41 2009
@@ -0,0 +1,135 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<document>
+
+ <properties>
+ <title>File Systems</title>
+ <author email="[email protected]">Ralph Goers</author>
+ </properties>
+
+<body>
+ <section name="File Systems">
+ <p>
+ In its default mode of operation Commons Configuration supports
retrieving and storing
+ configuration files either on a local file system or via http.
However, Commons
+ Configuration provides support for allowing other File System
adapters. All file
+ access is accomplished through the <code>FileSystem</code> interface
so accessing files
+ using other mechanisms is possible.
+ </p>
+ <p>
+ Commons Configuration also provides a second FileSystem which allows
retrieval using
+ <a href="http://commons.apache.org/vfs">Apache Commons VFS</a>. As of
this writing
+ Commons VFS supports 18 protocols for manipulating files.
+ </p>
+ <subsection name="Configuration">
+ <p>
+ The FileSystem used by Commons Configuration can be set in one of
several ways:
+ <ol>
+ <li>A system property named
"org.apache.commons.configuration.filesystem" can be defined
+ with the full class name of the desired <code>FileSystem</code>
implementation to set the
+ default <code>FileSystem</code>.</li>
+ <li><code>FileSystem.setDefaultFilesystem()</code> can be called to
directly set the
+ default <code>FileSystem</code> implementation.</li>
+ <li><code>DefaultConfigurationBuilder.setFileSystem()</code> can be
called to set the
+ FileSystem implementation. <code>DefaultConfiguratonBuilder</code>
will use this for each
+ configuration it creates</li>
+ <li><code>DefaultConfigurationBuilder</code> can be configured with
the <code>FileSystem</code>
+ to be used when creating each of the configurations.</li>
+ <li>Each Configuration referenced in
<code>DefaultConfigurationBuilder's</code>
+ configuration can be configured with the <code>FileSystem</code> to
use for that
+ configuration.</li>
+ <li>Call setFileSystem() directly on any Configuration that
implements <code>FileSystemBased.</code>
+ Both <code>AbstractFileConfiguration</code> and
<code>AbstractHierarchicalFileConfiguration</code>
+ implement <code>FileSystemBased</code></li>
+ </ol>
+ </p>
+ <p>
+ The example that follows shows how to add <code>FileSystem</code>
configuration to
+ <code>DefaultConfigurationBuilder</code>.
+ </p>
+ <source><![CDATA[
+<configuration>
+ <header>
+ <result delimiterParsingDisabled="true" forceReloadCheck="true">
+ <expressionEngine
config-class="org.apache.commons.configuration.tree.xpath.XPathExpressionEngine"/>
+ </result>
+ <fileSystem config-class="org.apache.commons.configuration.VFSFileSystem"/>
+ </header>
+ <override>
+ <xml fileName="settings.xml" config-name="xml">
+ <fileSystem
config-class="org.apache.commons.configuration.DefaultFileSystem"/>
+ </xml>
+ </override>
+</configuration>
+]]></source>
+ </subsection>
+ <subsection name="File Options Provider">
+ <p>
+ Commons VFS allows options to the underlying file systems being
used. Commons Configuration
+ allows applications to provide these by implementing the
<code>FileOptionsProvider</code> interface
+ and registering the provider with the <code>FileSystem</code>.
<code>FileOptionsProvider</code>
+ has a single method that must be implemented,
<code>getOptions</code>, which returns a Map
+ containing the keys and values that the <code>FileSystem</code>
might use. The getOptions
+ method is called as each configuration uses VFS to create a
<code>FileOjbect</code> to
+ access the file. The map returned does not have to contain the same
keys and/or values
+ each time it is called. For example, the value of the
<code>currentUser</code> key can be
+ set to the id of the currently logged in user to allow a WebDAV save
to record the userid
+ as a file attribute.
+ </p>
+ </subsection>
+ <subsection name="File Reloading Strategy">
+ <p>
+ The <code><a
href="../apidocs/org/apache/commons/configuration/reloading/VFSFileMonitorReloadingStrategy.html">VFSFileMonitorReloadingStrategy</a></code>
+ can be used to cause Configurations accessed via the
<code>VFSFileSystem</code> to be
+ monitored and reloaded when the files are modified. The example
below shows how
+ <code>DefaultConfigurationBuilder</code> can be configured to use
+ <code>VFSFileMonitorReloadingStrategy</code>. While each declaration
will result in
+ a new reloading strategy object, each instance will share a common
<code>FileMonitor</code>.
+ The delay setting controls how often the <code>FileMonitor</code>
checks for changes
+ and since there is only a single <code>FileMonitor</code>, only the
largest value
+ specified on any <code>VFSFileMonitorReloadingStrategy</code> is
used.
+ In the example below both test.properties and settings.xml would be
checked for changes
+ once per minute.
+ </p>
+ <source><![CDATA[
+<configuration>
+ <header>
+ <result delimiterParsingDisabled="true" forceReloadCheck="true">
+ <expressionEngine
config-class="org.apache.commons.configuration.tree.xpath.XPathExpressionEngine"/>
+ </result>
+ <fileSystem config-class="org.apache.commons.configuration.VFSFileSystem"/>
+ </header>
+ <override>
+ <properties fileName="test.properties" throwExceptionOnMissing="true">
+ <reloadingStrategy delay="60000"
+
config-class="org.apache.commons.configuration.reloading.VFSFileMonitorReloadingStrategy"/>
+ </properties>
+ <xml fileName="settings.xml" config-name="xml">
+ <reloadingStrategy
+
config-class="org.apache.commons.configuration.reloading.VFSFileMonitorReloadingStrategy"/>
+ </xml>
+ </override>
+</configuration>
+]]></source>
+ </subsection>
+ </section>
+
+</body>
+
+</document>
Propchange:
commons/proper/configuration/trunk/xdocs/userguide/howto_filesystems.xml
------------------------------------------------------------------------------
svn:eol-style = native
Modified: commons/proper/configuration/trunk/xdocs/userguide/user_guide.xml
URL:
http://svn.apache.org/viewvc/commons/proper/configuration/trunk/xdocs/userguide/user_guide.xml?rev=761171&r1=761170&r2=761171&view=diff
==============================================================================
--- commons/proper/configuration/trunk/xdocs/userguide/user_guide.xml (original)
+++ commons/proper/configuration/trunk/xdocs/userguide/user_guide.xml Thu Apr
2 05:42:41 2009
@@ -84,13 +84,13 @@
<li><a href="howto_xml.html#Accessing_structured_properties">Accessing
structured properties</a></li>
<li><a href="howto_xml.html#Adding_new_properties">Adding new
properties</a></li>
<li><a
href="howto_xml.html#Escaping_dot_characters_in_property_names">Escaping dot
characters in property names</a></li>
+ <li><a href="howto_xml.html#Expression_engines">Expression
engines</a></li>
+ <ul>
+ <li><a href="howto_xml.html#The_default_expression_engine">The
default expression engine</a></li>
+ <li><a href="howto_xml.html#The_XPATH_expression_engine">The XPATH
expression engine</a></li>
+ </ul>
+ <li><a
href="howto_xml.html#Validation_of_XML_configuration_files">Validation of XML
configuration files</a></li>
</ul>
- <li><a href="howto_xml.html#Expression_engines">Expression
engines</a></li>
- <ul>
- <li><a href="howto_xml.html#The_default_expression_engine">The default
expression engine</a></li>
- <li><a href="howto_xml.html#The_XPATH_expression_engine">The XPATH
expression engine</a></li>
- </ul>
- <li><a
href="howto_xml.html#Validation_of_XML_configuration_files">Validation of XML
configuration files</a></li>
<li><a
href="howto_compositeconfiguration.html#Composite_Configuration_Details">Composite
Configuration Details</a></li>
<ul>
<li><a
href="howto_compositeconfiguration.html#Setting_Up_Defaults">Setting Up
Defaults</a></li>
@@ -114,17 +114,17 @@
<li><a
href="howto_configurationfactory.html#The_configuration_definition_file">The
configuration definition file</a></li>
<li><a
href="howto_configurationfactory.html#Setting_up_a_ConfigurationFactory">Setting
up a ConfigurationFactory</a></li>
<li><a
href="howto_configurationfactory.html#Accessing_properties">Accessing
properties</a></li>
- </ul>
- <li><a
href="howto_configurationfactory.html#Multiple_configuration_sources">Multiple
configuration sources</a></li>
- <ul>
- <li><a
href="howto_configurationfactory.html#Overriding_properties">Overriding
properties</a></li>
- <li><a
href="howto_configurationfactory.html#Optional_configuration_sources">Optional
configuration sources</a></li>
- </ul>
- <li><a href="howto_configurationfactory.html#Union_configuration">Union
configuration</a></li>
- <li><a
href="howto_configurationfactory.html#Configuration_definition_file_reference">Configuration
definition file reference</a></li>
- <ul>
- <li><a
href="howto_configurationfactory.html#Setting_further_options">Setting further
options</a></li>
- <li><a
href="howto_configurationfactory.html#Referencing_system_properties">Referencing
system properties</a></li>
+ <li><a
href="howto_configurationfactory.html#Multiple_configuration_sources">Multiple
configuration sources</a></li>
+ <ul>
+ <li><a
href="howto_configurationfactory.html#Overriding_properties">Overriding
properties</a></li>
+ <li><a
href="howto_configurationfactory.html#Optional_configuration_sources">Optional
configuration sources</a></li>
+ </ul>
+ <li><a
href="howto_configurationfactory.html#Union_configuration">Union
configuration</a></li>
+ <li><a
href="howto_configurationfactory.html#Configuration_definition_file_reference">Configuration
definition file reference</a></li>
+ <ul>
+ <li><a
href="howto_configurationfactory.html#Setting_further_options">Setting further
options</a></li>
+ <li><a
href="howto_configurationfactory.html#Referencing_system_properties">Referencing
system properties</a></li>
+ </ul>
</ul>
<li><a
href="howto_configurationbuilder.html#Using_DefaultConfigurationBuilder">Using
DefaultConfigurationBuilder</a></li>
<ul>
@@ -154,6 +154,12 @@
<li><a
href="howto_utilities.html#Interpolation_of_all_variables">Interpolation of all
variables</a></li>
<li><a
href="howto_utilities.html#Handling_of_runtime_exceptions">Handling of runtime
exceptions</a></li>
</ul>
+ <li><a href="howto_filesystems.html#File_Systems">File Systems</a></li>
+ <ul>
+ <li><a
href="howto_filesystems.html#File_Systems#Configuration">Configuration</a></li>
+ <li><a
href="howto_filesystems.html#File_Systems#File_Options_Provider">File Options
Provider</a></li>
+ <li><a
href="howto_filesystems.html#File_Systems#File_Reloading_Strategy">File
Reloading Strategy</a></li>
+ </ul>
</ul>
</section>