antoine 2003/08/21 12:42:15 Modified: . WHATSNEW src/main/org/apache/tools/ant/taskdefs/optional ReplaceRegExp.java src/testcases/org/apache/tools/ant/taskdefs/optional ReplaceRegExpTest.java src/etc/testcases/taskdefs/optional replaceregexp.xml Log: Avoid altering unnecessarily the timestamps of the directories of the files processed by replaceregexp PR: 22541 Revision Changes Path 1.489 +4 -0 ant/WHATSNEW Index: WHATSNEW =================================================================== RCS file: /home/cvs/ant/WHATSNEW,v retrieving revision 1.488 retrieving revision 1.489 diff -u -r1.488 -r1.489 --- WHATSNEW 21 Aug 2003 16:56:11 -0000 1.488 +++ WHATSNEW 21 Aug 2003 19:42:15 -0000 1.489 @@ -143,6 +143,10 @@ * <replaceregexp> didn't work for multi-byte encodings if byline was false. Bugzilla Report 19187. +* <replaceregexp> was altering unnecessarily the timestamp of the directories + containing the files to process + Bugzilla Report 22541. + * file names that include spaces need to be quoted inside the @argfile argument using forked <javac> and (all JDKS). Bugzilla Report 10499. NB : a first correction was only introducing quotes for JDK 1.4 1.26 +1 -2 ant/src/main/org/apache/tools/ant/taskdefs/optional/ReplaceRegExp.java Index: ReplaceRegExp.java =================================================================== RCS file: /home/cvs/ant/src/main/org/apache/tools/ant/taskdefs/optional/ReplaceRegExp.java,v retrieving revision 1.25 retrieving revision 1.26 diff -u -r1.25 -r1.26 --- ReplaceRegExp.java 19 Jul 2003 11:20:15 -0000 1.25 +++ ReplaceRegExp.java 21 Aug 2003 19:42:15 -0000 1.26 @@ -317,8 +317,7 @@ /** Perform the replace on the entire file */ protected void doReplace(File f, int options) throws IOException { - File parentDir = fileUtils.getParentFile(f); - File temp = fileUtils.createTempFile("replace", ".txt", parentDir); + File temp = fileUtils.createTempFile("replace", ".txt", null); Reader r = null; FileWriter w = null; 1.7 +19 -10 ant/src/testcases/org/apache/tools/ant/taskdefs/optional/ReplaceRegExpTest.java Index: ReplaceRegExpTest.java =================================================================== RCS file: /home/cvs/ant/src/testcases/org/apache/tools/ant/taskdefs/optional/ReplaceRegExpTest.java,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- ReplaceRegExpTest.java 7 Mar 2003 11:23:12 -0000 1.6 +++ ReplaceRegExpTest.java 21 Aug 2003 19:42:15 -0000 1.7 @@ -68,13 +68,13 @@ * @version $Revision$ */ public class ReplaceRegExpTest extends BuildFileTest { - + private static final String PROJECT_PATH = "src/etc/testcases/taskdefs/optional"; public ReplaceRegExpTest(String name) { super(name); } public void setUp() { - configureProject("src/etc/testcases/taskdefs/optional/replaceregexp.xml"); + configureProject(PROJECT_PATH + "/replaceregexp.xml"); } public void tearDown() { @@ -85,7 +85,7 @@ Properties original = new Properties(); FileInputStream propsFile = null; try { - propsFile = new FileInputStream("src/etc/testcases/taskdefs/optional/replaceregexp.properties"); + propsFile = new FileInputStream(PROJECT_PATH + "/replaceregexp.properties"); original.load(propsFile); } finally { if (propsFile != null) { @@ -100,7 +100,7 @@ Properties after = new Properties(); try { - propsFile = new FileInputStream("src/etc/testcases/taskdefs/optional/test.properties"); + propsFile = new FileInputStream(PROJECT_PATH + "/test.properties"); after.load(propsFile); } finally { if (propsFile != null) { @@ -112,21 +112,30 @@ assertNull(after.get("OldAbc")); assertEquals("AbcDef", after.get("NewProp")); } - + // inspired by bug 22541 + public void testDirectoryDateDoesNotChange() { + executeTarget("touchDirectory"); + File myFile = new File(PROJECT_PATH + "/" + getProject().getProperty("tmpregexp")); + long timeStampBefore = myFile.lastModified(); + executeTarget("testDirectoryDateDoesNotChange"); + long timeStampAfter = myFile.lastModified(); + assertEquals("directory date should not change", + timeStampBefore, timeStampAfter); + } public void testDontAddNewline1() throws IOException { executeTarget("testDontAddNewline1"); assertTrue("Files match", FileUtils.newFileUtils() - .contentEquals(new File("src/etc/testcases/taskdefs/optional/test.properties"), - new File("src/etc/testcases/taskdefs/optional/replaceregexp2.result.properties"))); + .contentEquals(new File(PROJECT_PATH + "/test.properties"), + new File(PROJECT_PATH + "/replaceregexp2.result.properties"))); } public void testDontAddNewline2() throws IOException { executeTarget("testDontAddNewline2"); assertTrue("Files match", FileUtils.newFileUtils() - .contentEquals(new File("src/etc/testcases/taskdefs/optional/test.properties"), - new File("src/etc/testcases/taskdefs/optional/replaceregexp2.result.properties"))); + .contentEquals(new File(PROJECT_PATH + "/test.properties"), + new File(PROJECT_PATH + "/replaceregexp2.result.properties"))); } }// ReplaceRegExpTest 1.5 +14 -1 ant/src/etc/testcases/taskdefs/optional/replaceregexp.xml Index: replaceregexp.xml =================================================================== RCS file: /home/cvs/ant/src/etc/testcases/taskdefs/optional/replaceregexp.xml,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- replaceregexp.xml 16 Sep 2002 16:19:29 -0000 1.4 +++ replaceregexp.xml 21 Aug 2003 19:42:15 -0000 1.5 @@ -1,5 +1,5 @@ <project name="test" default="def" basedir="."> - + <property name="tmpregexp" value="tmpregexp"/> <target name="def"> <fail>This build file should only be run from within the testcase</fail> </target> @@ -18,6 +18,18 @@ <substitution expression="NewProp=\1\2" /> </replaceregexp> </target> + <!-- use in conjunction with testDirectoryDateDoesNotChange to make sure something will happen --> + <target name="touchDirectory"> + <mkdir dir="${tmpregexp}"/> + <copy file="replaceregexp.properties" tofile="${tmpregexp}/test.properties" /> + <sleep seconds="2"/> + </target> + <target name="testDirectoryDateDoesNotChange"> + <replaceregexp file="${tmpregexp}/test.properties" byline="true"> + <regexp pattern="foo" /> + <substitution expression="bar"/> + </replaceregexp> + </target> <target name="testDontAddNewline1" depends="setup-nl"> <replaceregexp file="test.properties" byline="false"> @@ -35,6 +47,7 @@ <target name="cleanup"> <delete file="test.properties" /> + <delete dir="${tmpregexp}" quiet="true"/> </target> </project>
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]