Mark Diggory wrote:
I'm trying to use variable interpolation in version 1.3 I'm unsure of the
behavior with Sub-configurations. I'm wondering if interpolation should work
in these as well (i.e. using the entire configuration to interpolate
against. For instance if I have

base.dir=/home/foo

test.absolute.dir.x=${base.dir}/mypath
test.absolute.dir.y=${base.dir}/mypath1
test.absolute.dir.z=${base.dir}/mypath2

If I call something like:

Configuration config = configuration.configurationAt("test.absolute.dir");
for (Iterator iter = config.getKeys(); iter.hasNext();)
       {
           String key = (String) iter.next();
           System.out.println(key + "=" + config.getString(key));
       }

this prints out

x=${base.dir}/mypath
y=${base.dir}/mypath1
z=${base.dir}/mypath2

I was naively expecting

x=/home/foo/mypath
y=/home/foo/mypath1
z=/home/foo/mypath2

Thoughts?
Mark


Not sure what happens here. Based on your code fragment I added the following test case to TestSubnodeConfiguration [1]:


    public void testInterpolationFromConfigurationAt()
    {
        parent.addProperty("base.dir", "/home/foo");
        parent.addProperty("test.absolute.dir.dir1", "${base.dir}/path1");
        parent.addProperty("test.absolute.dir.dir2", "${base.dir}/path2");
        parent.addProperty("test.absolute.dir.dir3", "${base.dir}/path3");

        Configuration sub = parent.configurationAt("test.absolute.dir");
        for(int i = 1; i < 4; i++)
        {
assertEquals("Wrong interpolation in parent", "/home/foo/path" + i, parent.getString("test.absolute.dir.dir" + i)); assertEquals("Wrong interpolation in subnode", "/home/foo/path" + i, sub.getString("dir" + i));
        }
    }

and it works. SubnodeConfiguration overloads the interpolate() method and calls interpolate() on its parent. So the whole key should be evaluated.

Don't know why you get different results. Do you use special expression engines or something like that?

Oliver

[1] http://svn.apache.org/repos/asf/jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestSubnodeConfiguration.java

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to