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]

Reply via email to