You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by Oliver Heger <ol...@t-online.de> on 2005/09/29 20:36:16 UTC

[configuration] Release 1.2

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.

Following is a Todo list with things I would like to get done before a 
release. So this can be considered as a simple release plan. Feel free 
to comment or add further points.

- 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. For 
other tickets I feel no urgent need to address any before the release.

- Ensure binary compatibility
A Clirr or JDiff report should be created as mentioned in the "Releasing 
Components" section.

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

- 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?

Any other points?

Oliver

---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org


Re: [configuration] Release 1.2

Posted by Oliver Heger <ol...@t-online.de>.
Emmanuel Bourg wrote:

> Oliver Heger wrote:
>
>> - 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.

Hm, I see. Depending on the way the subset is constructed the key passed 
in for the test is either interpreted as 
"(tables.table.fields.field.name)(0)" or as 
"tables.table.fields.field.(name(0))"; these expressions have different 
results. Okay, let's differ that to the 1.3 release.

[...]

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

Maybe a HierarchicalConfiguration could be made configurable to support 
both models for adding properties (always creating new nodes versus 
using existing ones). We could also define something like an 
AddPropertyStrategy, but this seems to be a bit of an overkill. In any 
case AFICT methods affected by this change would be addPropertyDirect() 
and getProperty().

What would be the semantics for indices? ATM indices are evaluated on a 
per node basis. So e.g. if a node has three values, it will be counted 
as 1, not as 3. Is this okay for acessing property values? Changes this 
could have a major impact I fear.

Oliver
[...]

---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org


Re: [configuration] Release 1.2

Posted by Emmanuel Bourg <eb...@apache.org>.
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: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org