You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by rg...@apache.org on 2009/05/05 02:43:25 UTC
svn commit: r771512 - in
/commons/proper/configuration/branches/configuration2_experimental/src:
main/java/org/apache/commons/configuration2/
main/java/org/apache/commons/configuration2/resolver/
test/java/org/apache/commons/configuration2/ test/resour...
Author: rgoers
Date: Tue May 5 00:43:24 2009
New Revision: 771512
URL: http://svn.apache.org/viewvc?rev=771512&view=rev
Log:
Pass EntityResolver through MultiFileHierarchicalConfiguration. Allow CatalogResolver to load Catalog even if xml-resolver is in lib/endorsed.
Added:
commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/resolver/EntityResolverSupport.java (with props)
commons/proper/configuration/branches/configuration2_experimental/src/test/resources/sample_1001.xml (with props)
commons/proper/configuration/branches/configuration2_experimental/src/test/resources/testValidation3.xml (with props)
Modified:
commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/DefaultConfigurationBuilder.java
commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/MultiFileHierarchicalConfiguration.java
commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/XMLConfiguration.java
commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/resolver/CatalogResolver.java
commons/proper/configuration/branches/configuration2_experimental/src/test/java/org/apache/commons/configuration2/TestDefaultConfigurationBuilder.java
commons/proper/configuration/branches/configuration2_experimental/src/test/resources/sample.xsd
Modified: commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/DefaultConfigurationBuilder.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/DefaultConfigurationBuilder.java?rev=771512&r1=771511&r2=771512&view=diff
==============================================================================
--- commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/DefaultConfigurationBuilder.java (original)
+++ commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/DefaultConfigurationBuilder.java Tue May 5 00:43:24 2009
@@ -43,6 +43,7 @@
import org.apache.commons.configuration2.tree.UnionCombiner;
import org.apache.commons.configuration2.resolver.CatalogResolver;
import org.apache.commons.configuration2.resolver.EntityRegistry;
+import org.apache.commons.configuration2.resolver.EntityResolverSupport;
import org.apache.commons.lang.text.StrLookup;
import org.xml.sax.EntityResolver;
@@ -755,7 +756,7 @@
EntityResolver resolver = (EntityResolver) BeanHelper.createBean(decl, CatalogResolver.class);
BeanHelper.setProperty(resolver, "fileSystem", getFileSystem());
BeanHelper.setProperty(resolver, "baseDir", getBasePath());
- BeanHelper.setProperty(resolver, "substitutor", getSubstitutor());
+ BeanHelper.setProperty(resolver, "substitutor", getSubstitutor());
setEntityResolver(resolver);
}
}
@@ -1390,7 +1391,20 @@
public AbstractConfiguration getEmptyConfiguration(
ConfigurationDeclaration decl) throws Exception
{
- return super.getConfiguration(decl);
+ AbstractConfiguration config = super.getConfiguration(decl);
+
+ /**
+ * Some wrapper classes may need to pass the EntityResolver to XMLConfigurations
+ * they construct buy may not be an XMLConfiguration.
+ */
+ if (config instanceof EntityResolverSupport)
+ {
+ DefaultConfigurationBuilder builder = decl.getConfigurationBuilder();
+ EntityResolver resolver = builder.getEntityResolver();
+ ((EntityResolverSupport) config).setEntityResolver(resolver);
+ }
+
+ return config;
}
/**
Modified: commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/MultiFileHierarchicalConfiguration.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/MultiFileHierarchicalConfiguration.java?rev=771512&r1=771511&r2=771512&view=diff
==============================================================================
--- commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/MultiFileHierarchicalConfiguration.java (original)
+++ commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/MultiFileHierarchicalConfiguration.java Tue May 5 00:43:24 2009
@@ -38,8 +38,11 @@
import org.apache.commons.configuration2.event.ConfigurationEvent;
import org.apache.commons.configuration2.expr.ExpressionEngine;
import org.apache.commons.configuration2.tree.ConfigurationNode;
+import org.apache.commons.configuration2.tree.TreeUtils;
import org.apache.commons.configuration2.reloading.ReloadingStrategy;
+import org.apache.commons.configuration2.resolver.EntityResolverSupport;
import org.apache.commons.beanutils.BeanUtils;
+import org.xml.sax.EntityResolver;
/**
* This class provides access to multiple configuration files that reside in a location that
@@ -54,7 +57,7 @@
*
*/
public class MultiFileHierarchicalConfiguration extends AbstractHierarchicalFileConfiguration
- implements ConfigurationListener, ConfigurationErrorListener
+ implements ConfigurationListener, ConfigurationErrorListener, EntityResolverSupport
{
/**
* Prevent recursion while resolving unprefixed properties.
@@ -92,6 +95,12 @@
/** The Logger name to use */
private String loggerName = "";
+ /** The Reloading strategy to use on created configurations */
+ private ReloadingStrategy fileStrategy;
+
+ /** The EntityResolver */
+ private EntityResolver entityResolver;
+
/**
* Default Constructor
*/
@@ -156,6 +165,26 @@
this.attributeSplittingDisabled = attributeSplittingDisabled;
}
+ public ReloadingStrategy getReloadingStrategy()
+ {
+ return fileStrategy;
+ }
+
+ public void setReloadingStrategy(ReloadingStrategy strategy)
+ {
+ this.fileStrategy = strategy;
+ }
+
+ public void setEntityResolver(EntityResolver entityResolver)
+ {
+ this.entityResolver = entityResolver;
+ }
+
+ public EntityResolver getEntityResolver()
+ {
+ return this.entityResolver;
+ }
+
/**
* Set to true if an empty Configuration should be returned when loading fails. If
* false an exception will be thrown.
@@ -687,31 +716,34 @@
}
XMLConfiguration configuration = new XMLConfiguration();
- try
+ if (loggerName != null)
{
- if (loggerName != null)
- {
- Logger log = Logger.getLogger(loggerName);
- if (log != null)
- {
- configuration.setLogger(log);
- }
+ Logger log = Logger.getLogger(loggerName);
+ if (log != null)
+ {
+ configuration.setLogger(log);
}
- configuration.setBasePath(getBasePath());
- configuration.setFileName(path);
- configuration.setFileSystem(getFileSystem());
- configuration.setExpressionEngine(getExpressionEngine());
- configuration.setReloadingStrategy(createReloadingStrategy());
- configuration.setDelimiterParsingDisabled(isDelimiterParsingDisabled());
- configuration.setAttributeSplittingDisabled(isAttributeSplittingDisabled());
- configuration.setValidating(validating);
- configuration.setSchemaValidation(schemaValidation);
- configuration.setListDelimiter(getListDelimiter());
- configuration.addConfigurationListener(this);
- configuration.addErrorListener(this);
+ }
+ configuration.setBasePath(getBasePath());
+ configuration.setFileName(path);
+ configuration.setFileSystem(getFileSystem());
+ configuration.setExpressionEngine(getExpressionEngine());
+ ReloadingStrategy strategy = createReloadingStrategy();
+ if (strategy != null)
+ {
+ configuration.setReloadingStrategy(strategy);
+ }
+ configuration.setDelimiterParsingDisabled(isDelimiterParsingDisabled());
+ configuration.setAttributeSplittingDisabled(isAttributeSplittingDisabled());
+ configuration.setValidating(validating);
+ configuration.setSchemaValidation(schemaValidation);
+ configuration.setEntityResolver(entityResolver);
+ configuration.setListDelimiter(getListDelimiter());
+ configuration.addConfigurationListener(this);
+ configuration.addErrorListener(this);
+ try
+ {
configuration.load();
- configurationsMap.putIfAbsent(path, configuration);
- configuration = configurationsMap.get(path);
}
catch (ConfigurationException ce)
{
@@ -720,8 +752,8 @@
throw new ConfigurationRuntimeException(ce);
}
}
-
- return configuration;
+ configurationsMap.putIfAbsent(path, configuration);
+ return configurationsMap.get(path);
}
/**
Modified: commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/XMLConfiguration.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/XMLConfiguration.java?rev=771512&r1=771511&r2=771512&view=diff
==============================================================================
--- commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/XMLConfiguration.java (original)
+++ commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/XMLConfiguration.java Tue May 5 00:43:24 2009
@@ -32,6 +32,7 @@
import java.util.List;
import java.util.Map;
import java.util.Collections;
+import java.util.logging.Level;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
@@ -948,9 +949,14 @@
initProperties(newDocument, oldDocument == null);
document = (oldDocument == null) ? newDocument : oldDocument;
}
+ catch (SAXParseException spe)
+ {
+ this.getLogger().log(Level.FINE, "Error parsing " + source.getSystemId(), spe);
+ throw new ConfigurationException("Error parsing " + source.getSystemId(), spe);
+ }
catch (Exception e)
{
- throw new ConfigurationException(e.getMessage(), e);
+ throw new ConfigurationException("Unable to load the configuration", e);
}
}
@@ -971,11 +977,11 @@
}
catch (TransformerException e)
{
- throw new ConfigurationException(e.getMessage(), e);
+ throw new ConfigurationException("Unable to save the configuration", e);
}
catch (TransformerFactoryConfigurationError err)
{
- throw new ConfigurationException(err.getMessage(), err);
+ throw new ConfigurationException("Unable to save the configuration", err);
}
}
Modified: commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/resolver/CatalogResolver.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/resolver/CatalogResolver.java?rev=771512&r1=771511&r2=771512&view=diff
==============================================================================
--- commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/resolver/CatalogResolver.java (original)
+++ commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/resolver/CatalogResolver.java Tue May 5 00:43:24 2009
@@ -34,6 +34,8 @@
import java.io.InputStream;
import java.io.IOException;
import java.util.Vector;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Retention;
/**
* Thin wrapper around xml commons CatalogResolver to allow list of catalogs
@@ -88,7 +90,6 @@
{
manager.setIgnoreMissingProperties(true);
manager.setUseStaticCatalog(false);
- manager.setCatalogClassName(Catalog.class.getName());
manager.setFileSystem(fs);
setLogger(null);
}
@@ -246,6 +247,9 @@
*/
public static class CatalogManager extends org.apache.xml.resolver.CatalogManager
{
+ /** The static catalog used by this manager. */
+ private static org.apache.xml.resolver.Catalog staticCatalog;
+
/** The FileSystem */
private FileSystem fs;
@@ -303,6 +307,54 @@
{
return this.substitutor;
}
+
+
+ /**
+ * Get a new catalog instance. This method is only overridden because xml-resolver
+ * might be in a parent ClassLoader and will be incapable of loading our Catalog
+ * implementation.
+ *
+ * This method always returns a new instance of the underlying catalog class.
+ * @return the Catalog.
+ */
+ public org.apache.xml.resolver.Catalog getPrivateCatalog()
+ {
+ org.apache.xml.resolver.Catalog catalog = staticCatalog;
+
+ if (catalog == null || !getUseStaticCatalog())
+ {
+ try
+ {
+ catalog = new Catalog();
+ catalog.setCatalogManager(this);
+ catalog.setupReaders();
+ catalog.loadSystemCatalogs();
+ }
+ catch (Exception ex)
+ {
+ ex.printStackTrace();
+ }
+
+ if (getUseStaticCatalog())
+ {
+ staticCatalog = catalog;
+ }
+ }
+
+ return catalog;
+ }
+
+ /**
+ * Get a catalog instance.
+ *
+ * If this manager uses static catalogs, the same static catalog will
+ * always be returned. Otherwise a new catalog will be returned.
+ * @return The Catalog.
+ */
+ public org.apache.xml.resolver.Catalog getCatalog()
+ {
+ return getPrivateCatalog();
+ }
}
/**
@@ -460,6 +512,6 @@
StrSubstitutor substitutor = ((CatalogManager) catalogManager).getStrSubstitutor();
String resolved = substitutor != null ? substitutor.replace(uriref) : uriref;
return super.normalizeURI(resolved);
- }
+ }
}
}
Added: commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/resolver/EntityResolverSupport.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/resolver/EntityResolverSupport.java?rev=771512&view=auto
==============================================================================
--- commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/resolver/EntityResolverSupport.java (added)
+++ commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/resolver/EntityResolverSupport.java Tue May 5 00:43:24 2009
@@ -0,0 +1,41 @@
+/*
+ * 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.
+ */
+package org.apache.commons.configuration2.resolver;
+
+import org.xml.sax.EntityResolver;
+
+/**
+ * Interface that identifies the class as using an EntityResolver
+ * @author <a href="http://commons.apache.org/configuration/team-list.html">Commons
+ * Configuration team</a>
+ * @since 1.7
+ * @version $Id$
+ */
+public interface EntityResolverSupport
+{
+ /**
+ * Return the EntityResolver associated with the class.
+ * @return The EntityResolver.
+ */
+ EntityResolver getEntityResolver();
+
+ /**
+ * Set the EntityResolver to assoicate with this class.
+ * @param resolver The EntityResolver
+ */
+ void setEntityResolver(EntityResolver resolver);
+}
Propchange: commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/resolver/EntityResolverSupport.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/resolver/EntityResolverSupport.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Propchange: commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/resolver/EntityResolverSupport.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified: commons/proper/configuration/branches/configuration2_experimental/src/test/java/org/apache/commons/configuration2/TestDefaultConfigurationBuilder.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/branches/configuration2_experimental/src/test/java/org/apache/commons/configuration2/TestDefaultConfigurationBuilder.java?rev=771512&r1=771511&r2=771512&view=diff
==============================================================================
--- commons/proper/configuration/branches/configuration2_experimental/src/test/java/org/apache/commons/configuration2/TestDefaultConfigurationBuilder.java (original)
+++ commons/proper/configuration/branches/configuration2_experimental/src/test/java/org/apache/commons/configuration2/TestDefaultConfigurationBuilder.java Tue May 5 00:43:24 2009
@@ -29,6 +29,7 @@
import java.util.logging.Level;
import java.util.logging.StreamHandler;
import java.util.logging.SimpleFormatter;
+import java.util.logging.ConsoleHandler;
import junit.framework.TestCase;
@@ -36,6 +37,7 @@
import org.apache.commons.configuration2.reloading.FileChangedReloadingStrategy;
import org.apache.commons.configuration2.tree.DefaultConfigurationNode;
import org.apache.commons.configuration2.tree.ConfigurationNode;
+import org.apache.commons.configuration2.tree.TreeUtils;
import org.apache.commons.configuration2.tree.xpath.XPathExpressionEngine;
import org.apache.commons.lang.text.StrLookup;
@@ -81,6 +83,9 @@
private static final File VALIDATION_FILE = ConfigurationAssert
.getTestFile("testValidation.xml");
+ private static final File VALIDATION3_FILE = ConfigurationAssert
+ .getTestFile("testValidation3.xml");
+
private static final File MULTI_TENENT_FILE = ConfigurationAssert
.getTestFile("testMultiTenentConfigurationBuilder.xml");
@@ -842,6 +847,21 @@
assertEquals("Incorrect value retrieved","value1",value);
}
+
+ public void testValidation3() throws Exception
+ {
+ System.getProperties().remove("Id");
+ factory.setFile(VALIDATION3_FILE);
+ CombinedConfiguration config = factory.getConfiguration(true);
+ String value = config.getString("Employee/Name");
+ assertNotNull("The test key was not located", value);
+ assertEquals("Incorrect value retrieved","John Doe",value);
+ System.setProperty("Id", "1001");
+ value = config.getString("Employee/Name");
+ assertNotNull("The test key was not located", value);
+ assertEquals("Incorrect value retrieved","Jane Doe",value);
+ }
+
public void testMultiTenentConfiguration() throws Exception
{
factory.setFile(MULTI_TENENT_FILE);
Modified: commons/proper/configuration/branches/configuration2_experimental/src/test/resources/sample.xsd
URL: http://svn.apache.org/viewvc/commons/proper/configuration/branches/configuration2_experimental/src/test/resources/sample.xsd?rev=771512&r1=771511&r2=771512&view=diff
==============================================================================
--- commons/proper/configuration/branches/configuration2_experimental/src/test/resources/sample.xsd (original)
+++ commons/proper/configuration/branches/configuration2_experimental/src/test/resources/sample.xsd Tue May 5 00:43:24 2009
@@ -1,18 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
-<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://commons.apache.org/employee" xmlns:xs="http://www.w3.org/2001/XMLSchema">
- <xs:element name="Employees" type="emp:EmployeesType" xmlns:emp="http://commons.apache.org/employee"/>
- <xs:complexType name="EmployeeType">
- <xs:sequence>
- <xs:element type="xs:string" name="SSN"/>
- <xs:element type="xs:string" name="Name"/>
- <xs:element type="xs:string" name="DateOfBirth"/>
- <xs:element type="xs:string" name="EmployeeType"/>
- <xs:element type="xs:string" name="Salary"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="EmployeesType">
- <xs:sequence>
- <xs:element type="emp:EmployeeType" name="Employee" xmlns:emp="http://commons.apache.org/employee"/>
- </xs:sequence>
- </xs:complexType>
+<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified"
+ targetNamespace="http://commons.apache.org/employee"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema">
+ <xs:element name="Employees" xmlns="http://commons.apache.org/employee">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="Employee">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element type="xs:string" name="SSN" minOccurs="0"/>
+ <xs:element type="xs:string" name="Name" minOccurs="0"/>
+ <xs:element type="xs:string" name="DateOfBirth" minOccurs="0"/>
+ <xs:element type="xs:string" name="EmployeeType" minOccurs="0"/>
+ <xs:element type="xs:string" name="Salary" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
</xs:schema>
\ No newline at end of file
Added: commons/proper/configuration/branches/configuration2_experimental/src/test/resources/sample_1001.xml
URL: http://svn.apache.org/viewvc/commons/proper/configuration/branches/configuration2_experimental/src/test/resources/sample_1001.xml?rev=771512&view=auto
==============================================================================
--- commons/proper/configuration/branches/configuration2_experimental/src/test/resources/sample_1001.xml (added)
+++ commons/proper/configuration/branches/configuration2_experimental/src/test/resources/sample_1001.xml Tue May 5 00:43:24 2009
@@ -0,0 +1,8 @@
+<?xml version="1.0" ?>
+<Employees xmlns="http://commons.apache.org/employee"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://commons.apache.org/employee http://commons.apache.org/sample.xsd">
+ <Employee>
+ <Name>Jane Doe</Name>
+ </Employee>
+</Employees>
\ No newline at end of file
Propchange: commons/proper/configuration/branches/configuration2_experimental/src/test/resources/sample_1001.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: commons/proper/configuration/branches/configuration2_experimental/src/test/resources/sample_1001.xml
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Propchange: commons/proper/configuration/branches/configuration2_experimental/src/test/resources/sample_1001.xml
------------------------------------------------------------------------------
svn:mime-type = text/xml
Added: commons/proper/configuration/branches/configuration2_experimental/src/test/resources/testValidation3.xml
URL: http://svn.apache.org/viewvc/commons/proper/configuration/branches/configuration2_experimental/src/test/resources/testValidation3.xml?rev=771512&view=auto
==============================================================================
--- commons/proper/configuration/branches/configuration2_experimental/src/test/resources/testValidation3.xml (added)
+++ commons/proper/configuration/branches/configuration2_experimental/src/test/resources/testValidation3.xml Tue May 5 00:43:24 2009
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!-- Test configuration definition file that demonstrates complex initialization -->
+<configuration>
+ <header>
+ <result delimiterParsingDisabled="true" forceReloadCheck="true" loggerName="TestLogger"
+ config-class="org.apache.commons.configuration2.DynamicCombinedConfiguration"
+ keyPattern="$${sys:Id}">
+ <nodeCombiner config-class="org.apache.commons.configuration2.tree.MergeCombiner"/>
+ <expressionEngine config-class="org.apache.commons.configuration2.tree.xpath.XPathExpressionEngine"/>
+ </result>
+ <providers>
+ <provider config-tag="multifile"
+ config-class="org.apache.commons.configuration2.DefaultConfigurationBuilder$FileConfigurationProvider"
+ configurationClass="org.apache.commons.configuration2.MultiFileHierarchicalConfiguration"/>
+ </providers>
+ <entity-resolver catalogFiles="catalog.xml"/>
+ </header>
+ <system/>
+ <properties fileName="test.properties.xml" throwExceptionOnMissing="true"
+ config-name="properties">
+ </properties>
+ <multifile filePattern="sample_$$${sys:Id}.xml"
+ config-name="clientConfig" delimiterParsingDisabled="true" schemaValidation="true">
+ </multifile>
+ <xml fileName="sample.xml" config-name="xml" schemaValidation="true"/>
+</configuration>
\ No newline at end of file
Propchange: commons/proper/configuration/branches/configuration2_experimental/src/test/resources/testValidation3.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: commons/proper/configuration/branches/configuration2_experimental/src/test/resources/testValidation3.xml
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Propchange: commons/proper/configuration/branches/configuration2_experimental/src/test/resources/testValidation3.xml
------------------------------------------------------------------------------
svn:mime-type = text/xml