peterreilly 2004/11/26 01:52:06 Modified: . WHATSNEW CONTRIBUTORS docs/manual/CoreTasks signjar.html src/main/org/apache/tools/ant/taskdefs SignJar.java src/testcases/org/apache/tools/ant/taskdefs SignJarTest.java src/etc/testcases/taskdefs signjar.xml Log: add new preservelastmodified attribute to signjar PR: 30987 Obtained from: Ignacio Coloma Revision Changes Path 1.688 +3 -0 ant/WHATSNEW Index: WHATSNEW =================================================================== RCS file: /home/cvs/ant/WHATSNEW,v retrieving revision 1.687 retrieving revision 1.688 diff -u -r1.687 -r1.688 --- WHATSNEW 22 Nov 2004 10:07:22 -0000 1.687 +++ WHATSNEW 26 Nov 2004 09:52:05 -0000 1.688 @@ -92,6 +92,9 @@ * Added isSigned condition and task, and signedselector selector Bugzilla report 32126. +* Added preserveLastModified attribute to signjar task. + Bugzilla report 30987. + Changes from Ant 1.6.2 to current Ant 1.6 CVS version ===================================================== 1.40 +1 -0 ant/CONTRIBUTORS Index: CONTRIBUTORS =================================================================== RCS file: /home/cvs/ant/CONTRIBUTORS,v retrieving revision 1.39 retrieving revision 1.40 diff -u -r1.39 -r1.40 --- CONTRIBUTORS 19 Nov 2004 09:07:08 -0000 1.39 +++ CONTRIBUTORS 26 Nov 2004 09:52:05 -0000 1.40 @@ -74,6 +74,7 @@ Haroon Rafique Hiroaki Nakamura Holger Engels +Ignacio Coloma Ingenonsya France Ingmar Stein Irene Rusman 1.12 +6 -0 ant/docs/manual/CoreTasks/signjar.html Index: signjar.html =================================================================== RCS file: /home/cvs/ant/docs/manual/CoreTasks/signjar.html,v retrieving revision 1.11 retrieving revision 1.12 diff -u -r1.11 -r1.12 --- signjar.html 9 Feb 2004 21:50:05 -0000 1.11 +++ signjar.html 26 Nov 2004 09:52:06 -0000 1.12 @@ -92,6 +92,12 @@ style of standard java memory specs (e.g. 128m = 128 MBytes)</td> <td valign="top" align="center">No</td> </tr> + <tr> + <td valign="top">preservelastmodified</td> + <td valign="top">Give the signed file the same last modified + time as the original jar file.</td> + <td valign="top" align="center">No; default false.</td> + </tr> </table> <h3>Parameters as nested elements</h3> <table border="1" cellpadding="2" cellspacing="0"> 1.40 +20 -0 ant/src/main/org/apache/tools/ant/taskdefs/SignJar.java Index: SignJar.java =================================================================== RCS file: /home/cvs/ant/src/main/org/apache/tools/ant/taskdefs/SignJar.java,v retrieving revision 1.39 retrieving revision 1.40 diff -u -r1.39 -r1.40 --- SignJar.java 22 Nov 2004 11:42:53 -0000 1.39 +++ SignJar.java 26 Nov 2004 09:52:06 -0000 1.40 @@ -66,6 +66,7 @@ protected boolean verbose; protected boolean internalsf; protected boolean sectionsonly; + protected boolean preserveLastModified; /** The maximum amount of memory to use for Jar signer */ private String maxMemory; @@ -237,6 +238,7 @@ return; } + long lastModified = jarSource.lastModified(); final ExecTask cmd = (ExecTask) getProject().createTask("exec"); cmd.setExecutable(JavaEnvUtils.getJdkExecutable("jarsigner")); @@ -302,6 +304,15 @@ cmd.setFailonerror(true); cmd.setTaskName(getTaskName()); cmd.execute(); + + // restore the lastModified attribute + if (preserveLastModified) { + if (jarTarget != null) { + jarTarget.setLastModified(lastModified); + } else { + jarSource.setLastModified(lastModified); + } + } } protected boolean isUpToDate(File jarFile, File signedjarFile) { @@ -344,6 +355,15 @@ } catch (IOException e) { return false; } + } + + /** + * true to indicate that the signed jar modification date remains the same as the original. + * Defaults to false + * @param preserveLastModified if true preserve the last modified time + */ + public void setPreserveLastModified(boolean preserveLastModified) { + this.preserveLastModified = preserveLastModified; } } 1.9 +4 -0 ant/src/testcases/org/apache/tools/ant/taskdefs/SignJarTest.java Index: SignJarTest.java =================================================================== RCS file: /home/cvs/ant/src/testcases/org/apache/tools/ant/taskdefs/SignJarTest.java,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- SignJarTest.java 9 Mar 2004 16:48:57 -0000 1.8 +++ SignJarTest.java 26 Nov 2004 09:52:06 -0000 1.9 @@ -66,4 +66,8 @@ public void testURLKeystoreHTTP() { executeTarget("urlKeystoreHTTP"); } + + public void testPreserveLastModified() { + executeTarget("preserveLastModified"); + } } 1.4 +26 -0 ant/src/etc/testcases/taskdefs/signjar.xml Index: signjar.xml =================================================================== RCS file: /home/cvs/ant/src/etc/testcases/taskdefs/signjar.xml,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- signjar.xml 11 Feb 2003 04:44:36 -0000 1.3 +++ signjar.xml 26 Nov 2004 09:52:06 -0000 1.4 @@ -32,6 +32,32 @@ storepass="apacheant" maxmemory="128m"/> </target> + <target name="preserveLastModified"> + <jar jarfile="signtest.jar" basedir="${classes.dir}" includes="**/Task.class"/> + <touch file="signtest.jar" datetime="06/28/2000 2:02 pm"/> + <signjar jar="signtest.jar" alias="testonly" keystore="testkeystore" storepass="apacheant" + preservelastmodified="true"/> + <!-- Currently there is no condition for testing the date of file - so + use a selector --> + <pathconvert property="signtest.jar.prop" targetos="unix"> + <path> + <fileset dir="." includes="signtest.jar"> + <date datetime="06/28/2000 2:02 pm" when="equal"/> + </fileset> + </path> + <mapper> + <flattenmapper/> + </mapper> + </pathconvert> + <fail message="preserveLastModified did not preserve the last modified time"> + <condition> + <not> + <equals arg1="signtest.jar" arg2="signtest.jar"/> + </not> + </condition> + </fail> + </target> + <target name="clean"> <delete file="signtest.jar"/> </target>
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]