bodewig 2004/02/27 06:17:41 Modified: . WHATSNEW docs/manual/CoreTasks ear.html jar.html war.html zip.html src/main/org/apache/tools/ant/taskdefs Zip.java Log: A new roundup attribute on <zip> and related task can be used to control whether the file modification times inside the archive will be rounded up or down (since zips only store modification times with a granularity of two seconds). The default remains to round up. PR: 17934 Revision Changes Path 1.557 +5 -0 ant/WHATSNEW Index: WHATSNEW =================================================================== RCS file: /home/cvs/ant/WHATSNEW,v retrieving revision 1.556 retrieving revision 1.557 diff -u -r1.556 -r1.557 --- WHATSNEW 27 Feb 2004 11:45:15 -0000 1.556 +++ WHATSNEW 27 Feb 2004 14:17:41 -0000 1.557 @@ -35,6 +35,11 @@ * <touch> has filelist support. +* A new roundup attribute on <zip> and related task can be used to + control whether the file modification times inside the archive will + be rounded up or down (since zips only store modification times with + a granularity of two seconds). The default remains to round up. + Bugzilla Report 17934. Changes from Ant 1.6.1 to current Ant 1.6 CVS version ============================================= 1.18 +14 -0 ant/docs/manual/CoreTasks/ear.html Index: ear.html =================================================================== RCS file: /home/cvs/ant/docs/manual/CoreTasks/ear.html,v retrieving revision 1.17 retrieving revision 1.18 diff -u -r1.17 -r1.18 --- ear.html 9 Feb 2004 21:50:05 -0000 1.17 +++ ear.html 27 Feb 2004 14:17:41 -0000 1.18 @@ -114,6 +114,20 @@ <td valign="top">behavior when a duplicate file is found. Valid values are "add", "preserve", and "fail". The default value is "add". </td> <td valign="top" align="center">No</td> </tr> + <tr> + <td valign="top">roundup</td> + <td valign="top">Whether the file modification times will be + rounded up to the next even number of seconds.<br> + Zip archives store file modification times with a granularity of + two seconds, so the times will either be rounded up or down. If + you round down, the archive will always seem out-of-date when you + rerun the task, so the default is to round up. Rounding up may + lead to a different type of problems like JSPs inside a web + archive that seem to be slightly more recent than precompiled + pages, rendering precompilation useless.<br> + Defaults to true. <em>Since Ant 1.7</em></td> + <td align="center" valign="top">No</td> + </tr> </table> <h3>Nested elements</h3> <h4>metainf</h4> 1.30 +14 -0 ant/docs/manual/CoreTasks/jar.html Index: jar.html =================================================================== RCS file: /home/cvs/ant/docs/manual/CoreTasks/jar.html,v retrieving revision 1.29 retrieving revision 1.30 diff -u -r1.29 -r1.30 --- jar.html 9 Feb 2004 21:50:05 -0000 1.29 +++ jar.html 27 Feb 2004 14:17:41 -0000 1.30 @@ -168,6 +168,20 @@ <td valign="top">The encoding used to read the JAR manifest, when a manifest file is specified.</td> <td valign="top" align="center">No, defaults to the platform encoding.</td> </tr> + <tr> + <td valign="top">roundup</td> + <td valign="top">Whether the file modification times will be + rounded up to the next even number of seconds.<br> + Zip archives store file modification times with a granularity of + two seconds, so the times will either be rounded up or down. If + you round down, the archive will always seem out-of-date when you + rerun the task, so the default is to round up. Rounding up may + lead to a different type of problems like JSPs inside a web + archive that seem to be slightly more recent than precompiled + pages, rendering precompilation useless.<br> + Defaults to true. <em>Since Ant 1.7</em></td> + <td align="center" valign="top">No</td> + </tr> </table> <h3>Nested elements</h3> 1.22 +14 -0 ant/docs/manual/CoreTasks/war.html Index: war.html =================================================================== RCS file: /home/cvs/ant/docs/manual/CoreTasks/war.html,v retrieving revision 1.21 retrieving revision 1.22 diff -u -r1.21 -r1.22 --- war.html 9 Feb 2004 21:50:06 -0000 1.21 +++ war.html 27 Feb 2004 14:17:41 -0000 1.22 @@ -121,6 +121,20 @@ <td valign="top">behavior when a duplicate file is found. Valid values are "add", "preserve", and "fail". The default value is "add". </td> <td valign="top" align="center">No</td> </tr> + <tr> + <td valign="top">roundup</td> + <td valign="top">Whether the file modification times will be + rounded up to the next even number of seconds.<br> + Zip archives store file modification times with a granularity of + two seconds, so the times will either be rounded up or down. If + you round down, the archive will always seem out-of-date when you + rerun the task, so the default is to round up. Rounding up may + lead to a different type of problems like JSPs inside a web + archive that seem to be slightly more recent than precompiled + pages, rendering precompilation useless.<br> + Defaults to true. <em>Since Ant 1.7</em></td> + <td align="center" valign="top">No</td> + </tr> </table> <h3>Nested elements</h3> <h4>lib</h4> 1.24 +14 -0 ant/docs/manual/CoreTasks/zip.html Index: zip.html =================================================================== RCS file: /home/cvs/ant/docs/manual/CoreTasks/zip.html,v retrieving revision 1.23 retrieving revision 1.24 diff -u -r1.23 -r1.24 --- zip.html 9 Feb 2004 21:50:06 -0000 1.23 +++ zip.html 27 Feb 2004 14:17:41 -0000 1.24 @@ -164,6 +164,20 @@ <td valign="top">behavior when a duplicate file is found. Valid values are "add", "preserve", and "fail". The default value is "add". </td> <td valign="top" align="center">No</td> </tr> + <tr> + <td valign="top">roundup</td> + <td valign="top">Whether the file modification times will be + rounded up to the next even number of seconds.<br> + Zip archives store file modification times with a granularity of + two seconds, so the times will either be rounded up or down. If + you round down, the archive will always seem out-of-date when you + rerun the task, so the default is to round up. Rounding up may + lead to a different type of problems like JSPs inside a web + archive that seem to be slightly more recent than precompiled + pages, rendering precompilation useless.<br> + Defaults to true. <em>Since Ant 1.7</em></td> + <td align="center" valign="top">No</td> + </tr> </table> <h3>Parameters specified as nested elements</h3> <h4>fileset</h4> 1.122 +31 -3 ant/src/main/org/apache/tools/ant/taskdefs/Zip.java Index: Zip.java =================================================================== RCS file: /home/cvs/ant/src/main/org/apache/tools/ant/taskdefs/Zip.java,v retrieving revision 1.121 retrieving revision 1.122 diff -u -r1.121 -r1.122 --- Zip.java 9 Feb 2004 21:05:21 -0000 1.121 +++ Zip.java 27 Feb 2004 14:17:41 -0000 1.122 @@ -112,6 +112,14 @@ private boolean keepCompression = false; /** + * Whether the file modification times will be rounded up to the + * next even number of seconds. + * + * @since Ant 1.7 + */ + private boolean roundUp = true; + + /** * This is the name/location of where to * create the .zip file. * @@ -289,6 +297,24 @@ } /** + * Whether the file modification times will be rounded up to the + * next even number of seconds. + * + * <p>Zip archives store file modification times with a + * granularity of two seconds, so the times will either be rounded + * up or down. If you round down, the archive will always seem + * out-of-date when you rerun the task, so the default is to round + * up. Rounding up may lead to a different type of problems like + * JSPs inside a web archive that seem to be slightly more recent + * than precompiled pages, rendering precompilation useless.</p> + * + * @since Ant 1.7 + */ + public void setRoundUp(boolean r) { + roundUp = r; + } + + /** * validate and build */ public void execute() throws BuildException { @@ -914,10 +940,10 @@ ZipEntry ze = new ZipEntry (vPath); if (dir != null && dir.exists()) { // ZIPs store time with a granularity of 2 seconds, round up - ze.setTime(dir.lastModified() + 1999); + ze.setTime(dir.lastModified() + (roundUp ? 1999 : 0)); } else { // ZIPs store time with a granularity of 2 seconds, round up - ze.setTime(System.currentTimeMillis() + 1999); + ze.setTime(System.currentTimeMillis() + (roundUp ? 1999 : 0)); } ze.setSize (0); ze.setMethod (ZipEntry.STORED); @@ -1047,7 +1073,9 @@ FileInputStream fIn = new FileInputStream(file); try { // ZIPs store time with a granularity of 2 seconds, round up - zipFile(fIn, zOut, vPath, file.lastModified() + 1999, null, mode); + zipFile(fIn, zOut, vPath, + file.lastModified() + (roundUp ? 1999 : 0), + null, mode); } finally { fIn.close(); }
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]