commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ralph Goers <>
Subject Re: [configuration] File-based configurations
Date Mon, 24 Aug 2009 20:51:24 GMT

On Aug 24, 2009, at 11:34 AM, Oliver Heger wrote:

> Currently there are many ways to specify the location for a file- 
> based configuration: as a URL, as a File, a file name, a base  
> path... It was a major effort to keep the several get and set  
> methods for these properties in sync.
> With the new implementation based on the FileSystem class (which I  
> have not yet studied in detail I have to confess) I wonder whether  
> there is a better approach for the configuration2 branch. Would it  
> be possible to simplify the interface for file-based configurations,  
> e.g. by introducing a generic Locator class?
> Another remark about the DefaultFileSystem class: Currently the  
> functionality for locating files seems to be smeared between  
> DefaultFileSystem and ConfigurationUtils. Would it be better to  
> refactor it into a central location?

I will admit that the FileSystem class isn't all that pretty. My main  
goal was to be able to hook in Commons VFS. So all I did was refactor  
out all the places that were directly tieing into either a File object  
or Http and created the FileSystem and DefaultFileSystem to handle  
that. VFSFileSystem extends DefaultFileSystem and overrides a lot of  
the methods to interact with Commons VFS. This obviously isn't the  
best interface to use since it was designed to maintain compatibility,  
not as an optimal solution.

Frankly, Since Commons VFS can or could do anything you would want in  
the way of abstracting file handling it would make the most sense to  
me to just leverage its capabilities and use it as the abstraction  
layer since that what it was designed to do. I would remove the direct  
support for File objects and Http from Commons Configuration entirely.

And yes, there is a bit of overlap between ConfigurationUtils and  
DefaultFileSystem. Again, to preserve compatibility I did not remove  
methods from ConfigurationUtils.


To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message