From f5f32f163a646d83ae0b2501a58f78c901055a97 Mon Sep 17 00:00:00 2001 From: Stefan Bodewig Date: Mon, 6 Aug 2001 12:25:56 +0000 Subject: [PATCH] Make log messages from System.out calls, remove some code in execute that was redundant, remove some tabs, add testcase that checks that files don't get overwritten if they'd be identical to the new version. git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@269474 13f79535-47bb-0310-9956-ffa450edef68 --- .../apache/tools/ant/taskdefs/FixCRLF.java | 74 ++----------------- .../tools/ant/taskdefs/FixCrLfTest.java | 29 ++++++++ 2 files changed, 37 insertions(+), 66 deletions(-) diff --git a/src/main/org/apache/tools/ant/taskdefs/FixCRLF.java b/src/main/org/apache/tools/ant/taskdefs/FixCRLF.java index 717f61b82..5e3b81b5f 100644 --- a/src/main/org/apache/tools/ant/taskdefs/FixCRLF.java +++ b/src/main/org/apache/tools/ant/taskdefs/FixCRLF.java @@ -53,20 +53,16 @@ */ package org.apache.tools.ant.taskdefs; -import org.apache.tools.ant.Project; + import org.apache.tools.ant.BuildException; import org.apache.tools.ant.DirectoryScanner; +import org.apache.tools.ant.Project; import org.apache.tools.ant.types.EnumeratedAttribute; import java.io.*; import java.util.*; /** - * FixCRLF.java - * - * Based on FixCR.java - * by Sam Ruby rubys@us.ibm.com. - * * Task to convert text source files to local OS formatting conventions, as * well as repair text files damaged by misconfigured or misguided editors or * file transfer programs. @@ -137,7 +133,6 @@ public class FixCRLF extends MatchingTask { private StringBuffer linebuf = new StringBuffer(1024); private StringBuffer linebuf2 = new StringBuffer(1024); private int eol; - private int addcr = UNDEF; private String eolstr; private int ctrlz; private int tabs; @@ -317,7 +312,7 @@ public class FixCRLF extends MatchingTask { */ public void execute() throws BuildException { // first off, make sure that we've got a srcdir and destdir - + if (srcDir == null) { throw new BuildException("srcdir attribute must be set!"); } @@ -336,57 +331,6 @@ public class FixCRLF extends MatchingTask { } } - // Set up the correct EOL values - if (eol == UNDEF) { - if (addcr == UNDEF) { - // Neither eol not addcr has been defined - // go for the system defaults - if (System.getProperty("line.separator").equals("\r")) { - eol = CR; - } else if (System.getProperty("line.separator").equals("\n")) { - eol = LF; - } else { - eol = CRLF; - } - - } // end of if (addcr == UNDEF) - else { - // addcr has been defined - translate to eol values - switch (addcr) { - case ADD: - eol = CRLF; - break; - - case REMOVE: - eol = LF; - break; - - case ASIS: - eol = ASIS; - break; - - } // end of switch (addcr) - - } // end of if (addcr == UNDEF)else - - } // end of if (eol == UNDEF) - - switch (eol) { - // set eolstr value unless ASIS - case CR: - eolstr = new String("\r"); - break; - - case LF: - eolstr = new String("\n"); - break; - - case CRLF: - eolstr = new String("\r\n"); - break; - - } // end of switch (eol) - // log options used log("options:" + " eol=" + @@ -616,10 +560,9 @@ public class FixCRLF extends MatchingTask { if (destFile.exists()) { // Compare the destination with the temp file - System.out.println("destFile exists"); + log("destFile exists", Project.MSG_DEBUG); if ( ! filesEqual(destFile, tmpFile)) { - System.out.println("destFile exists: files not equal"); - log(destFile + " is being written", Project.MSG_VERBOSE); + log(destFile + " is being written", Project.MSG_DEBUG); if (!destFile.delete()) { throw new BuildException("Unable to delete " + destFile); @@ -633,17 +576,16 @@ public class FixCRLF extends MatchingTask { } } else { // destination is equal to temp file - System.out.println("destFile exists: files equal"); log(destFile + " is not written, as the contents are identical", - Project.MSG_VERBOSE); + Project.MSG_DEBUG); if (!tmpFile.delete()) { throw new BuildException("Unable to delete " - + destFile); + + tmpFile); } } } else { // destFile does not exist - write the temp file - System.out.println("destFile does not exist"); + log("destFile does not exist", Project.MSG_DEBUG); if (!tmpFile.renameTo(destFile)) { throw new BuildException( "Failed to transform " + srcFile diff --git a/src/testcases/org/apache/tools/ant/taskdefs/FixCrLfTest.java b/src/testcases/org/apache/tools/ant/taskdefs/FixCrLfTest.java index 63e7bf15f..5dcc43b99 100644 --- a/src/testcases/org/apache/tools/ant/taskdefs/FixCrLfTest.java +++ b/src/testcases/org/apache/tools/ant/taskdefs/FixCrLfTest.java @@ -130,6 +130,35 @@ public class FixCrLfTest extends TaskdefsTest { new File("src/etc/testcases/taskdefs/fixcrlf/result/Junk9.java")); } + public void testNoOverwrite() throws IOException { + executeTarget("test1"); + File result = + new File("src/etc/testcases/taskdefs/fixcrlf/result/Junk1.java"); + long modTime = result.lastModified(); + + /* + * Sleep for some time to make sure a newer file would get a + * more recent timestamp according to the file system's + * granularity (should be > 2s to account for Windows FAT). + */ + try { + Thread.currentThread().sleep(5000); + } catch (InterruptedException ie) { + fail(ie.getMessage()); + } // end of try-catch + + /* + * make sure we get a new Project instance or the target won't get run + * a second time. + */ + configureProject("src/etc/testcases/taskdefs/fixcrlf/build.xml"); + + executeTarget("test1"); + result = + new File("src/etc/testcases/taskdefs/fixcrlf/result/Junk1.java"); + assertEquals(modTime, result.lastModified()); + } + public void assertEqualContent(File expect, File result) throws AssertionFailedError, IOException { if (!result.exists()) {