[ http://issues.apache.org/jira/browse/CONFIGURATION-104?page=comments#action_12419922 ]
Oliver Heger commented on CONFIGURATION-104: -------------------------------------------- +1 for the idea of a Layout class that tries to obtain as much information as possible from the properties file. I would like to start with a rather simple one that can be enhanced step by step. The collaboration between a PropertiesConfiguration object and its Layout object could be as follows: - The load(Reader) method of PropertiesConfiguration delegates to the Layout object. - The Layout object reads the file line by line and stores relevant information, e.g. about comments, in internal data structures. - Extracted properties are added to the PropertiesConfiguration. - The Layout object is also registered as event listener at its PropertiesConfiguration. If events are received, its content is updated accordingly. - PropertiesConfiguration.save(Writer) again delegates to the Layout object for writing the data back to file. So the interface of the layout class could roughly look as follows: public class PropertiesConfigurationLayout implements ConfigurationListener { /** * Creates a new instance and sets the associated configuration. */ public PropertiesConfigurationLayou(PropertiesConfiguration config); /** * Reads in a properties file. */ public void load(Reader in) throws ConfigurationException; /** * Writes the internal data into a properties file. */ public void save(Writer out) throws ConfigurationException; // it would also be nice to have access to comments for properties /** * Returns the comment for the specified key. */ public String getComment(String key); /** * Sets the comment for the specified key. */ public void setComment(String key, String comment); /** * Returns the header comment. */ public String getHeaderComment(); /** * Sets the header comment. */ public void setHeaderComment(String comment); } Any thoughts? > [configuration] Preserve file structure (line comments) when re-saving > properties file > -------------------------------------------------------------------------------------- > > Key: CONFIGURATION-104 > URL: http://issues.apache.org/jira/browse/CONFIGURATION-104 > Project: Commons Configuration > Type: Bug > Environment: Operating System: other > Platform: Other > Reporter: Oded Noam > Attachments: preserve-comments-patch, preserve-comments-patch-java1.3 > > This bug applies when an application allows both manual editing of its > configuration files, and manipulation of the configuration via software. > When > saving the configuration file after changing, its file structure - file, > section and line comments - will all be lost. Next time a human tries to edit > the configuration file, all property documentation will be lost. > I have created a fix for this problem, applicable to PropertiesConfiguration > and XMLPropertiesConfiguration. The fix allows these classes to preserve a > list of comment lines preceding each property line. By default, comments are > not preserved; in case the comment preservation is required, it should be > enabled prior to loading the configuration file using: > AbstractFileConfiguration.setDefaultPreserveComments(true); > The fix is implemented and tested, attached as a patch file to this bug. -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]