Browse Source

Deprecated the optional <renameext> task as its functionality has been

superseded by the built-in <move> task.


git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@268366 13f79535-47bb-0310-9956-ffa450edef68
master
Stefan Bodewig 24 years ago
parent
commit
0c19b8e359
3 changed files with 44 additions and 52 deletions
  1. +3
    -0
      docs/index.html
  2. +1
    -1
      src/main/org/apache/tools/ant/taskdefs/MatchingTask.java
  3. +40
    -51
      src/main/org/apache/tools/ant/taskdefs/optional/RenameExtensions.java

+ 3
- 0
docs/index.html View File

@@ -5655,6 +5655,9 @@ supports all attributes of <code>&lt;fileset&gt;</code>
</blockquote>
<hr>
<h2><a name="renameexts">RenameExtensions</a></h2>
<h3><i>Deprecated</i></h3>
<p><i>This task has been deprecated. Use the <a href="#move">move</a>
task with a <a href="#glob-mapper">glob mapper</a> instead.</i></p>
<h3>Description</h3>
<p>Renames files in the <code>srcDir</code> directory ending with the
<code>fromExtension</code> string so that they end with the


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

@@ -68,7 +68,7 @@ import java.util.*;
* @author Stefano Mazzocchi <a href="mailto:stefano@apache.org">stefano@apache.org</a>
* @author Sam Ruby <a href="mailto:rubys@us.ibm.com">rubys@us.ibm.com</a>
* @author Jon S. Stevens <a href="mailto:jon@clearink.com">jon@clearink.com</a>
* @author <a href="mailto:stefan.bodewig@megabit.net">Stefan Bodewig</a>
* @author <a href="mailto:stefan.bodewig@epost.de">Stefan Bodewig</a>
*/

public abstract class MatchingTask extends Task {


+ 40
- 51
src/main/org/apache/tools/ant/taskdefs/optional/RenameExtensions.java View File

@@ -58,9 +58,6 @@
* <li>srcDir: </li>
* <li>replace: </li>
* </ul>
*
* @author dIon Gillard <a href="mailto:dion@multitask.com.au">dion@multitask.com.au</a>
* @version 1.2
*/

package org.apache.tools.ant.taskdefs.optional;
@@ -69,10 +66,13 @@ import java.io.*;
import java.util.*;
import org.apache.tools.ant.*;
import org.apache.tools.ant.taskdefs.*;
import org.apache.tools.ant.types.Mapper;

/**
*
* @author dion
* @author dIon Gillard <a href="mailto:dion@multitask.com.au">dion@multitask.com.au</a>
* @author <a href="mailto:stefan.bodewig@epost.de">Stefan Bodewig</a>
* @version 1.2
*/
public class RenameExtensions extends MatchingTask {

@@ -81,10 +81,14 @@ public class RenameExtensions extends MatchingTask {
private boolean replace = false;
private File srcDir;

private Mapper.MapperType globType;


/** Creates new RenameExtensions */
public RenameExtensions() {
super();
globType = new Mapper.MapperType();
globType.setValue("glob");
}

/** store fromExtension **/
@@ -108,8 +112,8 @@ public class RenameExtensions extends MatchingTask {
/**
* Set the source dir to find the files to be renamed.
*/
public void setSrcDir(String srcDirName) {
srcDir = project.resolveFile(srcDirName);
public void setSrcDir(File srcDir) {
this.srcDir = srcDir;
}

/**
@@ -123,50 +127,35 @@ public class RenameExtensions extends MatchingTask {
"attributes must be set!" );
}

// scan source and dest dirs to build up rename list
DirectoryScanner ds = getDirectoryScanner(srcDir);

String[] files = ds.getIncludedFiles();

Hashtable renameList = scanDir(srcDir, files);

Enumeration e = renameList.keys();
File fromFile = null;
File toFile = null;
while (e.hasMoreElements()) {
fromFile = (File)e.nextElement();
toFile = (File)renameList.get(fromFile);
if (toFile.exists() && replace) toFile.delete();
if (!fromFile.renameTo(toFile)) {
throw new BuildException( "Rename from: '" + fromFile + "' to '" +
toFile + "' failed." );
}
}

}
private Hashtable scanDir(File srcDir, String[] files) {
Hashtable list = new Hashtable();
for (int i = 0; i < files.length; i++) {
File srcFile = new File(srcDir, files[i]);
String filename = files[i];
// if it's a file that ends in the fromExtension, copy to the rename list
if (filename.toLowerCase().endsWith(fromExtension)) {
File destFile =
new File( srcDir,
filename.substring(0, filename.lastIndexOf(fromExtension)) +
toExtension );

if (replace || !destFile.exists()) {
list.put(srcFile, destFile);
} else {
log( "Rejecting file: '" + srcFile + "' for rename as " +
"replace is false and file exists", Project.MSG_VERBOSE );
}
} else {
log( "File '"+ filename + "' doesn't match fromExtension: '" +
fromExtension + "'", Project.MSG_VERBOSE );
}
}
return list;
log("DEPRECATED - The renameext task is deprecated. Use move instead.",
Project.MSG_WARN);
log("Replace this with:", Project.MSG_INFO);
log("<move todir=\""+srcDir+"\" overwrite=\""+replace+"\">",
Project.MSG_INFO);
log(" <fileset dir=\""+srcDir+"\" />", Project.MSG_INFO);
log(" <mapper type=\"glob\"", Project.MSG_INFO);
log(" from=\"*"+fromExtension+"\"", Project.MSG_INFO);
log(" to=\"*"+toExtension+"\" />", Project.MSG_INFO);
log("</move>", Project.MSG_INFO);
log("using the same patterns on <fileset> as you\'ve used here",
Project.MSG_INFO);

Move move = (Move)project.createTask("move");
move.setOwningTarget(target);
move.setTaskName(getTaskName());
move.setLocation(getLocation());
move.setTodir(srcDir);
move.setOverwrite(replace);

fileset.setDir(srcDir);
move.addFileset(fileset);

Mapper me = move.createMapper();
me.setType(globType);
me.setFrom("*"+fromExtension);
me.setTo("*"+toExtension);

move.execute();
}

}

Loading…
Cancel
Save