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>
<expressionEngine
config-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
