You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by oh...@apache.org on 2014/04/19 20:04:18 UTC
svn commit: r1588687 -
/commons/proper/configuration/branches/immutableNodes/src/main/java/org/apache/commons/configuration/builder/combined/CombinedConfigurationBuilder.java
Author: oheger
Date: Sat Apr 19 18:04:18 2014
New Revision: 1588687
URL: http://svn.apache.org/r1588687
Log:
Set correct generic type parameters in CombinedConfigurationBuilder.
A ClassCastException was thrown in the tests because results of
configurationsAt() were cast to SubnodeConfigurations. The definition
configuration can now have an arbitrary node type.
Modified:
commons/proper/configuration/branches/immutableNodes/src/main/java/org/apache/commons/configuration/builder/combined/CombinedConfigurationBuilder.java
Modified: commons/proper/configuration/branches/immutableNodes/src/main/java/org/apache/commons/configuration/builder/combined/CombinedConfigurationBuilder.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/branches/immutableNodes/src/main/java/org/apache/commons/configuration/builder/combined/CombinedConfigurationBuilder.java?rev=1588687&r1=1588686&r2=1588687&view=diff
==============================================================================
--- commons/proper/configuration/branches/immutableNodes/src/main/java/org/apache/commons/configuration/builder/combined/CombinedConfigurationBuilder.java (original)
+++ commons/proper/configuration/branches/immutableNodes/src/main/java/org/apache/commons/configuration/builder/combined/CombinedConfigurationBuilder.java Sat Apr 19 18:04:18 2014
@@ -31,7 +31,6 @@ import org.apache.commons.configuration.
import org.apache.commons.configuration.Configuration;
import org.apache.commons.configuration.ConfigurationLookup;
import org.apache.commons.configuration.HierarchicalConfiguration;
-import org.apache.commons.configuration.SubnodeConfiguration;
import org.apache.commons.configuration.SystemConfiguration;
import org.apache.commons.configuration.XMLConfiguration;
import org.apache.commons.configuration.beanutils.BeanDeclaration;
@@ -490,10 +489,10 @@ public class CombinedConfigurationBuilde
private static final Map<String, ConfigurationBuilderProvider> DEFAULT_PROVIDERS_MAP;
/** The builder for the definition configuration. */
- private ConfigurationBuilder<? extends HierarchicalConfiguration> definitionBuilder;
+ private ConfigurationBuilder<? extends HierarchicalConfiguration<?>> definitionBuilder;
/** Stores temporarily the configuration with the builder definitions. */
- private HierarchicalConfiguration definitionConfiguration;
+ private HierarchicalConfiguration<?> definitionConfiguration;
/** The object with data about configuration sources. */
private ConfigurationSourceData sourceData;
@@ -552,7 +551,7 @@ public class CombinedConfigurationBuilde
* @return the builder for the definition configuration
* @throws ConfigurationException if an error occurs
*/
- public synchronized ConfigurationBuilder<? extends HierarchicalConfiguration> getDefinitionBuilder()
+ public synchronized ConfigurationBuilder<? extends HierarchicalConfiguration<?>> getDefinitionBuilder()
throws ConfigurationException
{
if (definitionBuilder == null)
@@ -665,14 +664,14 @@ public class CombinedConfigurationBuilde
* @return the builder for the definition configuration
* @throws ConfigurationException if an error occurs
*/
- protected ConfigurationBuilder<? extends HierarchicalConfiguration> setupDefinitionBuilder(
+ protected ConfigurationBuilder<? extends HierarchicalConfiguration<?>> setupDefinitionBuilder(
Map<String, Object> params) throws ConfigurationException
{
CombinedBuilderParametersImpl cbParams =
CombinedBuilderParametersImpl.fromParameters(params);
if (cbParams != null)
{
- ConfigurationBuilder<? extends HierarchicalConfiguration> defBuilder =
+ ConfigurationBuilder<? extends HierarchicalConfiguration<?>> defBuilder =
cbParams.getDefinitionBuilder();
if (defBuilder != null)
{
@@ -708,7 +707,7 @@ public class CombinedConfigurationBuilde
* @param builderParams the parameters object for the builder
* @return the standard builder for the definition configuration
*/
- protected ConfigurationBuilder<? extends HierarchicalConfiguration> createXMLDefinitionBuilder(
+ protected ConfigurationBuilder<? extends HierarchicalConfiguration<?>> createXMLDefinitionBuilder(
BuilderParameters builderParams)
{
return new FileBasedConfigurationBuilder<XMLConfiguration>(
@@ -728,7 +727,7 @@ public class CombinedConfigurationBuilde
* @return the definition configuration
* @throws ConfigurationException if an error occurs
*/
- protected HierarchicalConfiguration getDefinitionConfiguration()
+ protected HierarchicalConfiguration<?> getDefinitionConfiguration()
throws ConfigurationException
{
if (definitionConfiguration == null)
@@ -785,7 +784,7 @@ public class CombinedConfigurationBuilde
super.initResultInstance(result);
currentConfiguration = result;
- HierarchicalConfiguration config = getDefinitionConfiguration();
+ HierarchicalConfiguration<?> config = getDefinitionConfiguration();
if (config.getMaxIndex(KEY_COMBINER) < 0)
{
// No combiner defined => set default
@@ -850,13 +849,14 @@ public class CombinedConfigurationBuilde
* @throws ConfigurationException if an error occurs
*/
protected void registerConfiguredLookups(
- HierarchicalConfiguration defConfig, Configuration resultConfig)
+ HierarchicalConfiguration<?> defConfig, Configuration resultConfig)
throws ConfigurationException
{
Map<String, Lookup> lookups = new HashMap<String, Lookup>();
- List<SubnodeConfiguration> nodes =
+
+ List<? extends HierarchicalConfiguration<?>> nodes =
defConfig.configurationsAt(KEY_CONFIGURATION_LOOKUPS);
- for (SubnodeConfiguration config : nodes)
+ for (HierarchicalConfiguration<?> config : nodes)
{
XMLBeanDeclaration decl = new XMLBeanDeclaration(config);
String key = config.getString(KEY_LOOKUP_KEY);
@@ -885,7 +885,7 @@ public class CombinedConfigurationBuilde
* @return the default {@code FileSystem} (may be <b>null</b>)
* @throws ConfigurationException if an error occurs
*/
- protected FileSystem initFileSystem(HierarchicalConfiguration config)
+ protected FileSystem initFileSystem(HierarchicalConfiguration<?> config)
throws ConfigurationException
{
if (config.getMaxIndex(FILE_SYSTEM) == 0)
@@ -907,7 +907,7 @@ public class CombinedConfigurationBuilde
* <b>null</b>)
* @throws ConfigurationException if an error occurs.
*/
- protected void initSystemProperties(HierarchicalConfiguration config,
+ protected void initSystemProperties(HierarchicalConfiguration<?> config,
String basePath) throws ConfigurationException
{
String fileName = config.getString(KEY_SYSTEM_PROPS);
@@ -934,7 +934,7 @@ public class CombinedConfigurationBuilde
* parameters; here the new resolver is to be stored
* @throws ConfigurationException if an error occurs
*/
- protected void configureEntityResolver(HierarchicalConfiguration config,
+ protected void configureEntityResolver(HierarchicalConfiguration<?> config,
XMLBuilderParametersImpl xmlParams) throws ConfigurationException
{
if (config.getMaxIndex(KEY_ENTITY_RESOLVER) == 0)
@@ -1048,7 +1048,6 @@ public class CombinedConfigurationBuilde
void initBean(Object bean, BeanDeclaration decl)
{
fetchBeanHelper().initBean(bean, decl);
- ;
}
/**
@@ -1116,7 +1115,7 @@ public class CombinedConfigurationBuilde
}
else
{
- ConfigurationBuilder<? extends HierarchicalConfiguration> defBuilder =
+ ConfigurationBuilder<? extends HierarchicalConfiguration<?>> defBuilder =
getDefinitionBuilder();
if (defBuilder instanceof FileBasedConfigurationBuilder)
{
@@ -1260,12 +1259,12 @@ public class CombinedConfigurationBuilde
* @param defConfig the definition configuration
* @throws ConfigurationException if an error occurs
*/
- private void registerConfiguredProviders(HierarchicalConfiguration defConfig)
+ private void registerConfiguredProviders(HierarchicalConfiguration<?> defConfig)
throws ConfigurationException
{
- List<SubnodeConfiguration> nodes =
+ List<? extends HierarchicalConfiguration<?>> nodes =
defConfig.configurationsAt(KEY_CONFIGURATION_PROVIDERS);
- for (SubnodeConfiguration config : nodes)
+ for (HierarchicalConfiguration<?> config : nodes)
{
XMLBeanDeclaration decl = new XMLBeanDeclaration(config);
String key = config.getString(KEY_PROVIDER_KEY);
@@ -1283,7 +1282,7 @@ public class CombinedConfigurationBuilde
* @param defBuilder the definition builder
*/
private void addDefinitionBuilderChangeListener(
- final ConfigurationBuilder<? extends HierarchicalConfiguration> defBuilder)
+ final ConfigurationBuilder<? extends HierarchicalConfiguration<?>> defBuilder)
{
defBuilder.addBuilderListener(new BuilderListener()
{
@@ -1324,7 +1323,7 @@ public class CombinedConfigurationBuilde
* @param key the key for the list nodes
*/
private static void initNodeCombinerListNodes(CombinedConfiguration cc,
- HierarchicalConfiguration defConfig, String key)
+ HierarchicalConfiguration<?> defConfig, String key)
{
List<Object> listNodes = defConfig.getList(key);
for (Object listNode : listNodes)
@@ -1361,10 +1360,10 @@ public class CombinedConfigurationBuilde
private class ConfigurationSourceData
{
/** A list with all builders for override configurations. */
- private final Collection<SubnodeConfiguration> overrideBuilders;
+ private final Collection<HierarchicalConfiguration<?>> overrideBuilders;
/** A list with all builders for union configurations. */
- private final Collection<SubnodeConfiguration> unionBuilders;
+ private final Collection<HierarchicalConfiguration<?>> unionBuilders;
/** A map for direct access to a builder by its name. */
private final Map<String, ConfigurationBuilder<? extends Configuration>> namedBuilders;
@@ -1381,9 +1380,9 @@ public class CombinedConfigurationBuilde
public ConfigurationSourceData()
{
overrideBuilders =
- new LinkedList<SubnodeConfiguration>();
+ new LinkedList<HierarchicalConfiguration<?>>();
unionBuilders =
- new LinkedList<SubnodeConfiguration>();
+ new LinkedList<HierarchicalConfiguration<?>>();
namedBuilders =
new HashMap<String, ConfigurationBuilder<? extends Configuration>>();
allBuilders =
@@ -1397,7 +1396,7 @@ public class CombinedConfigurationBuilde
* @throws ConfigurationException if an error occurs
*/
public void initFromDefinitionConfiguration(
- HierarchicalConfiguration config) throws ConfigurationException
+ HierarchicalConfiguration<?> config) throws ConfigurationException
{
overrideBuilders.addAll(fetchTopLevelOverrideConfigs(config));
overrideBuilders.addAll(config.childConfigurationsAt(KEY_OVERRIDE));
@@ -1415,11 +1414,11 @@ public class CombinedConfigurationBuilde
* @throws ConfigurationException if an error occurs
*/
public void createAndAddConfigurations(CombinedConfiguration ccResult,
- Collection<SubnodeConfiguration> srcDecl)
+ Collection<HierarchicalConfiguration<?>> srcDecl)
throws ConfigurationException
{
createBuilderChangeListener();
- for (HierarchicalConfiguration src : srcDecl)
+ for (HierarchicalConfiguration<?> src : srcDecl)
{
ConfigurationDeclaration decl =
new ConfigurationDeclaration(
@@ -1460,7 +1459,7 @@ public class CombinedConfigurationBuilde
*
* @return the override configuration builders
*/
- public Collection<SubnodeConfiguration> getOverrideSources()
+ public Collection<HierarchicalConfiguration<?>> getOverrideSources()
{
return overrideBuilders;
}
@@ -1471,7 +1470,7 @@ public class CombinedConfigurationBuilde
*
* @return the union configuration builders
*/
- public Collection<SubnodeConfiguration> getUnionSources()
+ public Collection<HierarchicalConfiguration<?>> getUnionSources()
{
return unionBuilders;
}
@@ -1510,7 +1509,7 @@ public class CombinedConfigurationBuilde
* @throws ConfigurationException if an error occurs
*/
private ConfigurationBuilder<? extends Configuration> createConfigurationBuilder(
- HierarchicalConfiguration src, ConfigurationDeclaration decl)
+ HierarchicalConfiguration<?> src, ConfigurationDeclaration decl)
throws ConfigurationException
{
ConfigurationBuilderProvider provider =
@@ -1591,16 +1590,18 @@ public class CombinedConfigurationBuilde
* @return a list with sub configurations for the top level override
* configurations
*/
- private List<SubnodeConfiguration> fetchTopLevelOverrideConfigs(
- HierarchicalConfiguration config)
+ private List<? extends HierarchicalConfiguration<?>> fetchTopLevelOverrideConfigs(
+ HierarchicalConfiguration<?> config)
{
- List<SubnodeConfiguration> configs =
+
+ List<? extends HierarchicalConfiguration<?>> configs =
config.childConfigurationsAt(null);
- for (Iterator<SubnodeConfiguration> it = configs.iterator(); it
- .hasNext();)
+ for (Iterator<? extends HierarchicalConfiguration<?>> it =
+ configs.iterator(); it.hasNext();)
{
String nodeName = it.next().getRootElementName();
- for (String element : CONFIG_SECTIONS) {
+ for (String element : CONFIG_SECTIONS)
+ {
if (element.equals(nodeName))
{
it.remove();