Hi,I am trying to migrate to commons configuration for all the usual reasons, but have run into the following problem which I would appreciate if a more knowledgeable person than me would glance at. I want to migrate a set of property files into a single XML-file to have a more maintainable system, while keeping the code as similar as possible.
The following code gives me an incorrect result:SubnodeConfiguration c2 = configuration.configurationAt("environments/[EMAIL PROTECTED]'dvl9']");
The keys appear to be correct of c2, but the values are all empty.
This is against SVN of today, as the 1.3 release hits a JIRA. -- output -- 1 configurations:environments/environment/env/@name = [server.name, server.type, server.program.lib] environments/environment/env/@value = [server, AS/400, /QSYS.LIB/DVEROBJ.LIB/]
environments/environment/@name = [dvl9] ----- env/@name = [] env/@value = [] @name = [] -- configuration file -- <?xml version="1.0" encoding="ISO-8859-1" ?> <configuration> <header> <result> <expressionEngineconfig-class="org.apache.commons.configuration.tree.xpath.XPathExpressionEngine" />
</result> </header> <override> <xml config-name="s" fileName="environments.xml" config-at="environments"> </xml> </override> <additional> <!-- Configuration declarations that form a union configuration --> </additional> </configuration> -- environments.xml ---- <!-- four soft default environments --> <environments> <environment name="dvl9"> <env name="server.name" value="server" /> <env name="server.type" value="AS/400" /> <env name="server.program.lib" value="/QSYS.LIB/DVEROBJ.LIB/" /> </environment> </environments> -- code -- package bad; import java.util.Iterator; import org.apache.commons.configuration.CombinedConfiguration; import org.apache.commons.configuration.ConfigurationException; import org.apache.commons.configuration.DefaultConfigurationBuilder; import org.apache.commons.configuration.SubnodeConfiguration; public class ConfigurationUtils {public CombinedConfiguration getConfiguration() {
try { return getConfiguration_(); } catch (ConfigurationException e) { throw new RuntimeException("bad configuration", e); } }public CombinedConfiguration getConfiguration_() throws ConfigurationException { DefaultConfigurationBuilder builder = new DefaultConfigurationBuilder();
builder.setFileName("config.xml"); return builder.getConfiguration(true); }public static void main(String[] args) { CombinedConfiguration configuration = new ConfigurationUtils().getConfiguration(); System.out.println(configuration.getNumberOfConfigurations() + " configurations:");
Iterator keys = configuration.getKeys(); while(keys.hasNext()) { String next = (String) keys.next(); System.out.println(next + " = " + configuration.getList(next)); } System.out.println("-----");SubnodeConfiguration c2 = configuration.configurationAt("environments/[EMAIL PROTECTED]'dvl9']");
Iterator keys2 = c2.getKeys(); while(keys2.hasNext()) { String next = (String) keys2.next(); System.out.println(next + " = " + configuration.getList(next)); } } } ==I would appreciate any pointers and hints helping me figuring out what I have misunderstood.
-- Thorbjørn Ravn Andersen
smime.p7s
Description: S/MIME Cryptographic Signature