Browse Source

Add method to FileUtils that emulates File.createNewFile (well, sort

of) and use it in Touch as well as BuildNumber.

Various JDK 1.1 issues.


git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@272157 13f79535-47bb-0310-9956-ffa450edef68
master
Stefan Bodewig 23 years ago
parent
commit
f7c0a7741d
9 changed files with 64 additions and 19 deletions
  1. +3
    -2
      src/main/org/apache/tools/ant/taskdefs/BuildNumber.java
  2. +1
    -3
      src/main/org/apache/tools/ant/taskdefs/Touch.java
  3. +5
    -5
      src/main/org/apache/tools/ant/taskdefs/cvslib/CVSEntry.java
  4. +8
    -2
      src/main/org/apache/tools/ant/taskdefs/cvslib/ChangeLogParser.java
  5. +1
    -1
      src/main/org/apache/tools/ant/taskdefs/cvslib/ChangeLogTask.java
  6. +4
    -4
      src/main/org/apache/tools/ant/taskdefs/cvslib/ChangeLogWriter.java
  7. +2
    -2
      src/main/org/apache/tools/ant/taskdefs/cvslib/RCSFile.java
  8. +30
    -0
      src/main/org/apache/tools/ant/util/FileUtils.java
  9. +10
    -0
      src/testcases/org/apache/tools/ant/util/FileUtilsTest.java

+ 3
- 2
src/main/org/apache/tools/ant/taskdefs/BuildNumber.java View File

@@ -60,6 +60,7 @@ import java.io.IOException;
import java.util.Properties;
import org.apache.tools.ant.Task;
import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.util.FileUtils;

/**
* This is a basic task that can be used to track build numbers.
@@ -125,7 +126,7 @@ public class BuildNumber
output = new FileOutputStream( m_file );

final String header = "Build Number for ANT. Do not edit!";
properties.store( output, header );
properties.save( output, header );
}
catch( final IOException ioe )
{
@@ -230,7 +231,7 @@ public class BuildNumber
{
try
{
m_file.createNewFile();
FileUtils.newFileUtils().createNewFile(m_file);
}
catch( final IOException ioe )
{


+ 1
- 3
src/main/org/apache/tools/ant/taskdefs/Touch.java View File

@@ -168,9 +168,7 @@ public class Touch extends Task {
if (!file.exists()) {
log("Creating "+file, Project.MSG_INFO);
try {
FileOutputStream fos = new FileOutputStream(file);
fos.write(new byte[0]);
fos.close();
fileUtils.createNewFile(file);
} catch (IOException ioe) {
throw new BuildException("Could not create "+file, ioe,
location);


+ 5
- 5
src/main/org/apache/tools/ant/taskdefs/cvslib/CVSEntry.java View File

@@ -53,7 +53,7 @@
*/
package org.apache.tools.ant.taskdefs.cvslib;

import java.util.ArrayList;
import java.util.Vector;
import java.util.Date;

/**
@@ -68,7 +68,7 @@ class CVSEntry
private Date m_date;
private final String m_author;
private final String m_comment;
private final ArrayList m_files = new ArrayList();
private final Vector m_files = new Vector();

public CVSEntry( Date date, String author, String comment )
{
@@ -79,12 +79,12 @@ class CVSEntry

public void addFile( String file, String revision )
{
m_files.add( new RCSFile( file, revision ) );
m_files.addElement( new RCSFile( file, revision ) );
}

public void addFile( String file, String revision, String previousRevision )
{
m_files.add( new RCSFile( file, revision, previousRevision ) );
m_files.addElement( new RCSFile( file, revision, previousRevision ) );
}

Date getDate()
@@ -102,7 +102,7 @@ class CVSEntry
return m_comment;
}

ArrayList getFiles()
Vector getFiles()
{
return m_files;
}


+ 8
- 2
src/main/org/apache/tools/ant/taskdefs/cvslib/ChangeLogParser.java View File

@@ -56,6 +56,7 @@ package org.apache.tools.ant.taskdefs.cvslib;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Enumeration;
import java.util.Hashtable;
import java.util.Properties;

@@ -109,8 +110,13 @@ class ChangeLogParser
*/
CVSEntry[] getEntrySetAsArray()
{
final CVSEntry[] array = new CVSEntry[ m_entries.values().size() ];
return (CVSEntry[])m_entries.values().toArray( array );
final CVSEntry[] array = new CVSEntry[ m_entries.size() ];
Enumeration enum = m_entries.elements();
int i = 0;
while (enum.hasMoreElements()) {
array[i++] = (CVSEntry) enum.nextElement();
}
return array;
}

/**


+ 1
- 1
src/main/org/apache/tools/ant/taskdefs/cvslib/ChangeLogTask.java View File

@@ -360,7 +360,7 @@ public class ChangeLogTask
//Skip dates that are too late
continue;
}
results.add( cvsEntry );
results.addElement( cvsEntry );
}

final CVSEntry[] resultArray = new CVSEntry[ results.size() ];


+ 4
- 4
src/main/org/apache/tools/ant/taskdefs/cvslib/ChangeLogWriter.java View File

@@ -55,7 +55,7 @@ package org.apache.tools.ant.taskdefs.cvslib;

import java.io.PrintWriter;
import java.text.SimpleDateFormat;
import java.util.Iterator;
import java.util.Enumeration;

/**
* Class used to generate an XML changelog.
@@ -99,10 +99,10 @@ class ChangeLogWriter
output.println( "\t\t<time>" + c_outputTime.format( entry.getDate() ) + "</time>" );
output.println( "\t\t<author>" + entry.getAuthor() + "</author>" );

final Iterator iterator = entry.getFiles().iterator();
while( iterator.hasNext() )
final Enumeration enumeration = entry.getFiles().elements();
while( enumeration.hasMoreElements() )
{
final RCSFile file = (RCSFile)iterator.next();
final RCSFile file = (RCSFile)enumeration.nextElement();
output.println( "\t\t<file>" );
output.println( "\t\t\t<name>" + file.getName() + "</name>" );
output.println( "\t\t\t<revision>" + file.getRevision() + "</revision>" );


+ 2
- 2
src/main/org/apache/tools/ant/taskdefs/cvslib/RCSFile.java View File

@@ -62,8 +62,8 @@ package org.apache.tools.ant.taskdefs.cvslib;
*/
class RCSFile
{
private final String m_name;
private final String m_revision;
private String m_name;
private String m_revision;
private String m_previousRevision;

RCSFile( final String name, final String rev )


+ 30
- 0
src/main/org/apache/tools/ant/util/FileUtils.java View File

@@ -810,5 +810,35 @@ public class FileUtils {
}
return text;
}

/**
* Emulation of File.createNewFile for JDK 1.1
*
* <p>This method does <strong>not</strong> guarantee that the
* operation is atomic.</p>
*
* @since 1.21, Ant 1.5
*/
public boolean createNewFile(File f) throws IOException {
if (f != null) {
if (f.exists()) {
return false;
}
FileOutputStream fos = null;
try {
fos = new FileOutputStream(f);
fos.write(new byte[0]);
} finally {
if (fos != null) {
fos.close();
}
}
return true;
}
return false;
}

}


+ 10
- 0
src/testcases/org/apache/tools/ant/util/FileUtilsTest.java View File

@@ -372,6 +372,16 @@ public class FileUtilsTest extends TestCase {
new File("docs.xml")));
}

/**
* Test createNewFile
*/
public void testCreateNewFile() throws IOException {
removeThis = new File("dummy");
assertTrue(!removeThis.exists());
fu.createNewFile(removeThis);
assertTrue(removeThis.exists());
}

/**
* adapt file separators to local conventions
*/


Loading…
Cancel
Save