ebourg 2005/01/03 08:51:29 Modified: configuration/xdocs changes.xml configuration/src/java/org/apache/commons/configuration PropertiesConfiguration.java Log: Added a comment header to PropertiesConfiguration (bug 26092). The header is not parsed when the file is loaded yet. Revision Changes Path 1.80 +4 -0 jakarta-commons/configuration/xdocs/changes.xml Index: changes.xml =================================================================== RCS file: /home/cvs/jakarta-commons/configuration/xdocs/changes.xml,v retrieving revision 1.79 retrieving revision 1.80 diff -u -r1.79 -r1.80 --- changes.xml 3 Jan 2005 16:35:04 -0000 1.79 +++ changes.xml 3 Jan 2005 16:51:29 -0000 1.80 @@ -8,6 +8,10 @@ <body> <release version="1.1-dev" date="in CVS"> + <action dev="ebourg" type="add" issue="26092"> + Added a comment header to PropertiesConfiguration. The header is not + parsed when the file is loaded yet. + </action> <action dev="ebourg" type="add"> Added the setEncoding(String) and the getEncoding() methods to the FileConfiguration interface to control the encoding of the 1.19 +40 -3 jakarta-commons/configuration/src/java/org/apache/commons/configuration/PropertiesConfiguration.java Index: PropertiesConfiguration.java =================================================================== RCS file: /home/cvs/jakarta-commons/configuration/src/java/org/apache/commons/configuration/PropertiesConfiguration.java,v retrieving revision 1.18 retrieving revision 1.19 diff -u -r1.18 -r1.19 --- PropertiesConfiguration.java 3 Jan 2005 11:58:46 -0000 1.18 +++ PropertiesConfiguration.java 3 Jan 2005 16:51:29 -0000 1.19 @@ -22,6 +22,8 @@ import java.io.LineNumberReader; import java.io.Reader; import java.io.Writer; +import java.io.StringReader; +import java.io.BufferedReader; import java.net.URL; import java.util.Date; import java.util.Iterator; @@ -141,6 +143,9 @@ /** Allow file inclusion or not */ private boolean includesAllowed = true; + /** Comment header of the .properties file */ + private String header; + /** * Creates an empty PropertyConfiguration object which can be * used to synthesize a new Properties file by adding values and @@ -237,6 +242,26 @@ } /** + * Return the comment header. + * + * @since 1.1 + */ + public String getHeader() + { + return header; + } + + /** + * Set the comment header. + * + * @since 1.1 + */ + public void setHeader(String header) + { + this.header = header; + } + + /** * Load the properties from the given input stream and using the specified * encoding. * @@ -306,8 +331,20 @@ { PropertiesWriter out = new PropertiesWriter(writer, getDelimiter()); + if (header != null) + { + BufferedReader reader = new BufferedReader(new StringReader(header)); + String line; + while ((line = reader.readLine()) != null) + { + out.writeComment(line); + } + out.write("\n"); + } + out.writeComment("written by PropertiesConfiguration"); out.writeComment(new Date().toString()); + out.write("\n"); Iterator keys = getKeys(); while (keys.hasNext()) @@ -387,8 +424,8 @@ line = line.trim(); - if (StringUtils.isEmpty(line) - || (line.charAt(0) == '#')) + // skip comments and empty lines + if (StringUtils.isEmpty(line) || (line.charAt(0) == '#')) { continue; }
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]