Oliver Heger wrote:
A while ago we discussed the possibility of a new release of commons-configuration. Now back from my vacations I could spend some time on this task.

Thank you for taking care of this task.

- Bugzilla:
There are three tickets in the "need info" state, which can be closed because of lack of feedback. For 35858 we can decide whether the subset() implementation of HierarchicalConfiguration can be dropped.

It can't be removed right now due to an assertion that fails without this specific implementation. I suggest to keep the method as is for the next release and try to remove it for the 1.3 release.

For other tickets I feel no urgent need to address any before the release.

There is one last issue I'd like to address before the 1.2 release, that's the instance specific delimiter (Bug 35828), but I haven't got much feedback on this topic.


- Documentation
Some improvements of our user guide won't be wrong.

I agree, I updated the dependency page recently, the overview could be improved with some examples detailing the new property list configurations.


- Code quality
Address errors and warnings displayed by Checkstyle, Javadoc, and other reports. Maybe try to further increase test coverage. Apropos: What's the state of the new plist package? Test coverage is quite low (maybe because a failing unit test was disabled), and the Eclipse compiler outputs several warnings (e.g. about unused variables). Is it yet mature?

I ran Clover yesterday and the coverage was indeed low on the plist package (37%). I fixed the disabled tests and added some more. I also removed unused code from the classes generated by JavaCC, but this effort will be lost if we have to regenerate the classes to fix a parser issue. At this point the coverage is around 62%.

There are two issues left that are related to hierarchical configurations in general, fixing these issues could also improve the test coverage:

1) adding a List, or adding more than once a value with the same key generates several nodes instead of a node with a List value.

For example, with:

config.addProperty("array", "1");
config.addProperty("array", "2");

The property list will look like this:

{
    array = 1;
    array = 2;
}

instead of:

{
    array = (1, 2);
}

same thing with the xml variant:

<plist>
  <dict>
    <key>array</key>
    <string>1</string>

    <key>array</key>
    <string>2</string>
  </dict>
</plist>

instead of:

<plist>
  <dict>
    <key>array</key>
    <array>
      <string>1</string>
      <string>2</string>
    </array>
  </dict>
</plist>


2) a map or a configuration added to a hierarchical configuration should probably be transformed into a tree of nodes.

For example:

Map map = new HashMap();
map.put("foo", "1");
map.put("bar", "2");

config.addProperty("key", map);

This would produce a "key" node with two "foo" and "bar" children, instead of a "key" node with a Map value. Both forms are represented by the same plist file, but they are not equivalent.

Emmanuel Bourg








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

Reply via email to