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.

Ralph


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to