git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@270804 13f79535-47bb-0310-9956-ffa450edef68master
| @@ -0,0 +1,22 @@ | |||||
| /* | |||||
| * Copyright (C) The Apache Software Foundation. All rights reserved. | |||||
| * | |||||
| * This software is published under the terms of the Apache Software License | |||||
| * version 1.1, a copy of which has been included with this distribution in | |||||
| * the LICENSE.txt file. | |||||
| */ | |||||
| package org.apache.tools.ant.taskdefs.text; | |||||
| import org.apache.tools.ant.types.EnumeratedAttribute; | |||||
| /** | |||||
| * Enumerated attribute with the values "asis", "add" and "remove". | |||||
| */ | |||||
| public class AddAsisRemove | |||||
| extends EnumeratedAttribute | |||||
| { | |||||
| public String[] getValues() | |||||
| { | |||||
| return new String[]{"add", "asis", "remove"}; | |||||
| } | |||||
| } | |||||
| @@ -0,0 +1,22 @@ | |||||
| /* | |||||
| * Copyright (C) The Apache Software Foundation. All rights reserved. | |||||
| * | |||||
| * This software is published under the terms of the Apache Software License | |||||
| * version 1.1, a copy of which has been included with this distribution in | |||||
| * the LICENSE.txt file. | |||||
| */ | |||||
| package org.apache.tools.ant.taskdefs.text; | |||||
| import org.apache.tools.ant.types.EnumeratedAttribute; | |||||
| /** | |||||
| * Enumerated attribute with the values "asis", "cr", "lf" and "crlf". | |||||
| */ | |||||
| public class CrLf | |||||
| extends EnumeratedAttribute | |||||
| { | |||||
| public String[] getValues() | |||||
| { | |||||
| return new String[]{"asis", "cr", "lf", "crlf"}; | |||||
| } | |||||
| } | |||||
| @@ -7,7 +7,6 @@ | |||||
| */ | */ | ||||
| package org.apache.tools.ant.taskdefs.text; | package org.apache.tools.ant.taskdefs.text; | ||||
| import java.io.BufferedInputStream; | |||||
| import java.io.BufferedReader; | import java.io.BufferedReader; | ||||
| import java.io.BufferedWriter; | import java.io.BufferedWriter; | ||||
| import java.io.File; | import java.io.File; | ||||
| @@ -16,17 +15,16 @@ import java.io.FileOutputStream; | |||||
| import java.io.FileReader; | import java.io.FileReader; | ||||
| import java.io.FileWriter; | import java.io.FileWriter; | ||||
| import java.io.IOException; | import java.io.IOException; | ||||
| import java.io.InputStream; | |||||
| import java.io.InputStreamReader; | import java.io.InputStreamReader; | ||||
| import java.io.OutputStreamWriter; | import java.io.OutputStreamWriter; | ||||
| import java.io.Reader; | import java.io.Reader; | ||||
| import java.io.Writer; | import java.io.Writer; | ||||
| import java.util.Iterator; | import java.util.Iterator; | ||||
| import java.util.NoSuchElementException; | import java.util.NoSuchElementException; | ||||
| import org.apache.avalon.excalibur.io.FileUtil; | |||||
| import org.apache.myrmidon.api.TaskException; | import org.apache.myrmidon.api.TaskException; | ||||
| import org.apache.tools.ant.types.DirectoryScanner; | |||||
| import org.apache.tools.ant.taskdefs.MatchingTask; | import org.apache.tools.ant.taskdefs.MatchingTask; | ||||
| import org.apache.tools.ant.types.EnumeratedAttribute; | |||||
| import org.apache.tools.ant.types.DirectoryScanner; | |||||
| /** | /** | ||||
| * Task to convert text source files to local OS formatting conventions, as well | * Task to convert text source files to local OS formatting conventions, as well | ||||
| @@ -69,7 +67,6 @@ import org.apache.tools.ant.types.EnumeratedAttribute; | |||||
| * @author <a href="mailto:pbwest@powerup.com.au">Peter B. West</a> | * @author <a href="mailto:pbwest@powerup.com.au">Peter B. West</a> | ||||
| * @version $Revision$ $Name$ | * @version $Revision$ $Name$ | ||||
| */ | */ | ||||
| public class FixCRLF | public class FixCRLF | ||||
| extends MatchingTask | extends MatchingTask | ||||
| { | { | ||||
| @@ -759,7 +756,8 @@ public class FixCRLF | |||||
| { | { | ||||
| // Compare the destination with the temp file | // Compare the destination with the temp file | ||||
| getLogger().debug( "destFile exists" ); | getLogger().debug( "destFile exists" ); | ||||
| if( !contentEquals( destFile, tmpFile ) ) | |||||
| boolean result = FileUtil.contentEquals( destFile, tmpFile ); | |||||
| if( !result ) | |||||
| { | { | ||||
| getLogger().debug( destFile + " is being written" ); | getLogger().debug( destFile + " is being written" ); | ||||
| if( !destFile.delete() ) | if( !destFile.delete() ) | ||||
| @@ -829,99 +827,6 @@ public class FixCRLF | |||||
| }// end of finally | }// end of finally | ||||
| } | } | ||||
| private boolean contentEquals( File f1, File f2 ) | |||||
| throws IOException | |||||
| { | |||||
| if( f1.exists() != f2.exists() ) | |||||
| { | |||||
| return false; | |||||
| } | |||||
| if( !f1.exists() ) | |||||
| { | |||||
| // two not existing files are equal | |||||
| return true; | |||||
| } | |||||
| if( f1.isDirectory() || f2.isDirectory() ) | |||||
| { | |||||
| // don't want to compare directory contents for now | |||||
| return false; | |||||
| } | |||||
| InputStream in1 = null; | |||||
| InputStream in2 = null; | |||||
| try | |||||
| { | |||||
| in1 = new BufferedInputStream( new FileInputStream( f1 ) ); | |||||
| in2 = new BufferedInputStream( new FileInputStream( f2 ) ); | |||||
| int expectedByte = in1.read(); | |||||
| while( expectedByte != -1 ) | |||||
| { | |||||
| if( expectedByte != in2.read() ) | |||||
| { | |||||
| return false; | |||||
| } | |||||
| expectedByte = in1.read(); | |||||
| } | |||||
| if( in2.read() != -1 ) | |||||
| { | |||||
| return false; | |||||
| } | |||||
| return true; | |||||
| } | |||||
| finally | |||||
| { | |||||
| if( in1 != null ) | |||||
| { | |||||
| try | |||||
| { | |||||
| in1.close(); | |||||
| } | |||||
| catch( IOException e ) | |||||
| { | |||||
| } | |||||
| } | |||||
| if( in2 != null ) | |||||
| { | |||||
| try | |||||
| { | |||||
| in2.close(); | |||||
| } | |||||
| catch( IOException e ) | |||||
| { | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| /** | |||||
| * Enumerated attribute with the values "asis", "add" and "remove". | |||||
| * | |||||
| * @author RT | |||||
| */ | |||||
| public static class AddAsisRemove extends EnumeratedAttribute | |||||
| { | |||||
| public String[] getValues() | |||||
| { | |||||
| return new String[]{"add", "asis", "remove"}; | |||||
| } | |||||
| } | |||||
| /** | |||||
| * Enumerated attribute with the values "asis", "cr", "lf" and "crlf". | |||||
| * | |||||
| * @author RT | |||||
| */ | |||||
| public static class CrLf extends EnumeratedAttribute | |||||
| { | |||||
| public String[] getValues() | |||||
| { | |||||
| return new String[]{"asis", "cr", "lf", "crlf"}; | |||||
| } | |||||
| } | |||||
| class OneLiner | class OneLiner | ||||
| implements Iterator | implements Iterator | ||||
| { | { | ||||
| @@ -1200,5 +1105,4 @@ public class FixCRLF | |||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| @@ -0,0 +1,22 @@ | |||||
| /* | |||||
| * Copyright (C) The Apache Software Foundation. All rights reserved. | |||||
| * | |||||
| * This software is published under the terms of the Apache Software License | |||||
| * version 1.1, a copy of which has been included with this distribution in | |||||
| * the LICENSE.txt file. | |||||
| */ | |||||
| package org.apache.tools.ant.taskdefs.text; | |||||
| import org.apache.tools.ant.types.EnumeratedAttribute; | |||||
| /** | |||||
| * Enumerated attribute with the values "asis", "add" and "remove". | |||||
| */ | |||||
| public class AddAsisRemove | |||||
| extends EnumeratedAttribute | |||||
| { | |||||
| public String[] getValues() | |||||
| { | |||||
| return new String[]{"add", "asis", "remove"}; | |||||
| } | |||||
| } | |||||
| @@ -0,0 +1,22 @@ | |||||
| /* | |||||
| * Copyright (C) The Apache Software Foundation. All rights reserved. | |||||
| * | |||||
| * This software is published under the terms of the Apache Software License | |||||
| * version 1.1, a copy of which has been included with this distribution in | |||||
| * the LICENSE.txt file. | |||||
| */ | |||||
| package org.apache.tools.ant.taskdefs.text; | |||||
| import org.apache.tools.ant.types.EnumeratedAttribute; | |||||
| /** | |||||
| * Enumerated attribute with the values "asis", "cr", "lf" and "crlf". | |||||
| */ | |||||
| public class CrLf | |||||
| extends EnumeratedAttribute | |||||
| { | |||||
| public String[] getValues() | |||||
| { | |||||
| return new String[]{"asis", "cr", "lf", "crlf"}; | |||||
| } | |||||
| } | |||||
| @@ -7,7 +7,6 @@ | |||||
| */ | */ | ||||
| package org.apache.tools.ant.taskdefs.text; | package org.apache.tools.ant.taskdefs.text; | ||||
| import java.io.BufferedInputStream; | |||||
| import java.io.BufferedReader; | import java.io.BufferedReader; | ||||
| import java.io.BufferedWriter; | import java.io.BufferedWriter; | ||||
| import java.io.File; | import java.io.File; | ||||
| @@ -16,17 +15,16 @@ import java.io.FileOutputStream; | |||||
| import java.io.FileReader; | import java.io.FileReader; | ||||
| import java.io.FileWriter; | import java.io.FileWriter; | ||||
| import java.io.IOException; | import java.io.IOException; | ||||
| import java.io.InputStream; | |||||
| import java.io.InputStreamReader; | import java.io.InputStreamReader; | ||||
| import java.io.OutputStreamWriter; | import java.io.OutputStreamWriter; | ||||
| import java.io.Reader; | import java.io.Reader; | ||||
| import java.io.Writer; | import java.io.Writer; | ||||
| import java.util.Iterator; | import java.util.Iterator; | ||||
| import java.util.NoSuchElementException; | import java.util.NoSuchElementException; | ||||
| import org.apache.avalon.excalibur.io.FileUtil; | |||||
| import org.apache.myrmidon.api.TaskException; | import org.apache.myrmidon.api.TaskException; | ||||
| import org.apache.tools.ant.types.DirectoryScanner; | |||||
| import org.apache.tools.ant.taskdefs.MatchingTask; | import org.apache.tools.ant.taskdefs.MatchingTask; | ||||
| import org.apache.tools.ant.types.EnumeratedAttribute; | |||||
| import org.apache.tools.ant.types.DirectoryScanner; | |||||
| /** | /** | ||||
| * Task to convert text source files to local OS formatting conventions, as well | * Task to convert text source files to local OS formatting conventions, as well | ||||
| @@ -69,7 +67,6 @@ import org.apache.tools.ant.types.EnumeratedAttribute; | |||||
| * @author <a href="mailto:pbwest@powerup.com.au">Peter B. West</a> | * @author <a href="mailto:pbwest@powerup.com.au">Peter B. West</a> | ||||
| * @version $Revision$ $Name$ | * @version $Revision$ $Name$ | ||||
| */ | */ | ||||
| public class FixCRLF | public class FixCRLF | ||||
| extends MatchingTask | extends MatchingTask | ||||
| { | { | ||||
| @@ -759,7 +756,8 @@ public class FixCRLF | |||||
| { | { | ||||
| // Compare the destination with the temp file | // Compare the destination with the temp file | ||||
| getLogger().debug( "destFile exists" ); | getLogger().debug( "destFile exists" ); | ||||
| if( !contentEquals( destFile, tmpFile ) ) | |||||
| boolean result = FileUtil.contentEquals( destFile, tmpFile ); | |||||
| if( !result ) | |||||
| { | { | ||||
| getLogger().debug( destFile + " is being written" ); | getLogger().debug( destFile + " is being written" ); | ||||
| if( !destFile.delete() ) | if( !destFile.delete() ) | ||||
| @@ -829,99 +827,6 @@ public class FixCRLF | |||||
| }// end of finally | }// end of finally | ||||
| } | } | ||||
| private boolean contentEquals( File f1, File f2 ) | |||||
| throws IOException | |||||
| { | |||||
| if( f1.exists() != f2.exists() ) | |||||
| { | |||||
| return false; | |||||
| } | |||||
| if( !f1.exists() ) | |||||
| { | |||||
| // two not existing files are equal | |||||
| return true; | |||||
| } | |||||
| if( f1.isDirectory() || f2.isDirectory() ) | |||||
| { | |||||
| // don't want to compare directory contents for now | |||||
| return false; | |||||
| } | |||||
| InputStream in1 = null; | |||||
| InputStream in2 = null; | |||||
| try | |||||
| { | |||||
| in1 = new BufferedInputStream( new FileInputStream( f1 ) ); | |||||
| in2 = new BufferedInputStream( new FileInputStream( f2 ) ); | |||||
| int expectedByte = in1.read(); | |||||
| while( expectedByte != -1 ) | |||||
| { | |||||
| if( expectedByte != in2.read() ) | |||||
| { | |||||
| return false; | |||||
| } | |||||
| expectedByte = in1.read(); | |||||
| } | |||||
| if( in2.read() != -1 ) | |||||
| { | |||||
| return false; | |||||
| } | |||||
| return true; | |||||
| } | |||||
| finally | |||||
| { | |||||
| if( in1 != null ) | |||||
| { | |||||
| try | |||||
| { | |||||
| in1.close(); | |||||
| } | |||||
| catch( IOException e ) | |||||
| { | |||||
| } | |||||
| } | |||||
| if( in2 != null ) | |||||
| { | |||||
| try | |||||
| { | |||||
| in2.close(); | |||||
| } | |||||
| catch( IOException e ) | |||||
| { | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| /** | |||||
| * Enumerated attribute with the values "asis", "add" and "remove". | |||||
| * | |||||
| * @author RT | |||||
| */ | |||||
| public static class AddAsisRemove extends EnumeratedAttribute | |||||
| { | |||||
| public String[] getValues() | |||||
| { | |||||
| return new String[]{"add", "asis", "remove"}; | |||||
| } | |||||
| } | |||||
| /** | |||||
| * Enumerated attribute with the values "asis", "cr", "lf" and "crlf". | |||||
| * | |||||
| * @author RT | |||||
| */ | |||||
| public static class CrLf extends EnumeratedAttribute | |||||
| { | |||||
| public String[] getValues() | |||||
| { | |||||
| return new String[]{"asis", "cr", "lf", "crlf"}; | |||||
| } | |||||
| } | |||||
| class OneLiner | class OneLiner | ||||
| implements Iterator | implements Iterator | ||||
| { | { | ||||
| @@ -1200,5 +1105,4 @@ public class FixCRLF | |||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| } | } | ||||