From fe67f956034a6bd80f0992140f1194d7bcb93ea0 Mon Sep 17 00:00:00 2001
From: Stefan Bodewig
<replace file="${src}/index.html" token="@@@" value="wombat"/>diff --git a/src/main/org/apache/tools/ant/taskdefs/Replace.java b/src/main/org/apache/tools/ant/taskdefs/Replace.java index 4efe38552..f669dbe18 100644 --- a/src/main/org/apache/tools/ant/taskdefs/Replace.java +++ b/src/main/org/apache/tools/ant/taskdefs/Replace.java @@ -80,6 +80,7 @@ public class Replace extends MatchingTask { private Union resources; private boolean preserveLastModified = false; + private boolean failOnNoReplacements = false; /** * An inline string to use as the replacement text. @@ -559,6 +560,9 @@ public class Replace extends MatchingTask { log("Replaced " + replaceCount + " occurrences in " + fileCount + " files.", Project.MSG_INFO); } + if (failOnNoReplacements && replaceCount == 0) { + throw new BuildException("didn't replace anything"); + } } finally { replacefilters = savedFilters; properties = savedProperties; @@ -894,6 +898,15 @@ public class Replace extends MatchingTask { preserveLastModified = b; } + /** + * Whether the build should fail if nothing has been replaced. + * + * @since Ant 1.8.0 + */ + public void setFailOnNoReplacements(boolean b) { + failOnNoReplacements = b; + } + /** * Adds the token and value as first <replacefilter> element. * The token and value are always processed first. diff --git a/src/tests/antunit/taskdefs/replace-test.xml b/src/tests/antunit/taskdefs/replace-test.xml index 3f3090978..67bdddbfc 100644 --- a/src/tests/antunit/taskdefs/replace-test.xml +++ b/src/tests/antunit/taskdefs/replace-test.xml @@ -67,4 +67,19 @@ Hello, world! resource="${output}/text.txt" value="Hello, Ant!"/> +