From d1bc937f76bfe650c3c2a530e848140cadedd785 Mon Sep 17 00:00:00 2001 From: Jan Materne Date: Fri, 19 Sep 2003 09:24:13 +0000 Subject: [PATCH] ConcatFilter: rename attributes after->append and before->prepend; added documentation. git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@275266 13f79535-47bb-0310-9956-ffa450edef68 --- docs/manual/CoreTypes/filterchain.html | 46 +++++++++- src/etc/testcases/filters/concat.xml | 42 +++++----- .../tools/ant/filters/ConcatFilter.java | 84 +++++++++---------- .../tools/ant/filters/ConcatFilterTest.java | 62 +++++++------- 4 files changed, 139 insertions(+), 95 deletions(-) diff --git a/docs/manual/CoreTypes/filterchain.html b/docs/manual/CoreTypes/filterchain.html index 2001d4f7b..89f26ad4a 100644 --- a/docs/manual/CoreTypes/filterchain.html +++ b/docs/manual/CoreTypes/filterchain.html @@ -103,6 +103,7 @@ nested elements.
TabsToSpaces
TailFilter
DeleteCharacters
+ConcatFilter
TokenFilter

FilterReader

@@ -818,6 +819,49 @@ Delete tabs and returns from the data. <deletecharacters chars="\t\r"/> +

ConcatFilter

+

This filter prepends or appends the content file to the filtered files.

+

since Ant 1.6

+ + + + + + + + + + + + + + + + +
Parameter NameParameter ValueRequired
prepend + The name of the file which content should be prepended to the file. + No
append + The name of the file which content should be appended to the file. + No
+

+ +

Examples:

+ +Do nothing: +
+<filterchain>
+    <concatfilter/>
+</filterchain>
+
+ +Adds a license text before each java source: +
+<filterchain>
+    <concatfilter prepend="apache-license-java.txt"/>
+</filterchain>
+
+ +

TokenFilter

This filter tokenizes the inputstream into strings and passes these @@ -1293,4 +1337,4 @@ This may be used as follows:

Copyright © 2002-2003 Apache Software Foundation. All rights -Reserved.

+Reserved.

\ No newline at end of file diff --git a/src/etc/testcases/filters/concat.xml b/src/etc/testcases/filters/concat.xml index d631fd674..4fe195166 100644 --- a/src/etc/testcases/filters/concat.xml +++ b/src/etc/testcases/filters/concat.xml @@ -3,8 +3,8 @@ - - + + @@ -26,35 +26,35 @@ - + + tofile="result/concat.filterReaderPrepend.test"> - + - + + tofile="result/concat.filterReaderAppend.test"> - + - + + tofile="result/concat.filterReaderPrependAppend.test"> - - + + @@ -70,32 +70,32 @@ - + + tofile="result/concat.concatfilterPrepend.test"> - + - + + tofile="result/concat.concatfilterAppend.test"> - + - + + tofile="result/concat.concatfilterPrependAppend.test"> - + diff --git a/src/main/org/apache/tools/ant/filters/ConcatFilter.java b/src/main/org/apache/tools/ant/filters/ConcatFilter.java index c50e47967..87d9809c0 100644 --- a/src/main/org/apache/tools/ant/filters/ConcatFilter.java +++ b/src/main/org/apache/tools/ant/filters/ConcatFilter.java @@ -67,7 +67,7 @@ import org.apache.tools.ant.types.Parameter; * * * - * + * * * * @@ -83,16 +83,16 @@ public final class ConcatFilter extends BaseParamFilterReader implements ChainableReader { /** File to add before the content. */ - private File before; + private File prepend; /** File to add after the content. */ - private File after; + private File append; - /** Reader for before-file. */ - private Reader beforeReader = new EmptyReader(); + /** Reader for prepend-file. */ + private Reader prependReader = new EmptyReader(); - /** Reader for after-file. */ - private Reader afterReader = new EmptyReader(); + /** Reader for append-file. */ + private Reader appendReader = new EmptyReader(); /** * Constructor for "dummy" instances. @@ -134,49 +134,49 @@ public final class ConcatFilter extends BaseParamFilterReader int ch = -1; - // The readers return -1 if they end. So simply read the "before" - // after that the "content" and at the end the "after" file. - ch = beforeReader.read(); + // The readers return -1 if they end. So simply read the "prepend" + // after that the "content" and at the end the "append" file. + ch = prependReader.read(); if (ch == -1) { ch = super.read(); } if (ch == -1) { - ch = afterReader.read(); + ch = appendReader.read(); } return ch; } /** - * Sets before attribute. - * @param before new value + * Sets prepend attribute. + * @param prepend new value */ - public void setBefore(final File before) { - this.before = before; + public void setPrepend(final File prepend) { + this.prepend = prepend; } /** - * Returns before attribute. - * @return before attribute + * Returns prepend attribute. + * @return prepend attribute */ - public File getBefore() { - return before; + public File getPrepend() { + return prepend; } /** - * Sets after attribute. - * @param after new value + * Sets append attribute. + * @param append new value */ - public void setAfter(final File after) { - this.after = after; + public void setAppend(final File append) { + this.append = append; } /** - * Returns after attribute. - * @return after attribute + * Returns append attribute. + * @return append attribute */ - public File getAfter() { - return after; + public File getAppend() { + return append; } /** @@ -191,10 +191,10 @@ public final class ConcatFilter extends BaseParamFilterReader */ public Reader chain(final Reader rdr) { ConcatFilter newFilter = new ConcatFilter(rdr); - newFilter.setBefore(getBefore()); - newFilter.setAfter(getAfter()); + newFilter.setPrepend(getPrepend()); + newFilter.setAppend(getAppend()); // Usually the initialized is set to true. But here it must not. - // Because the before and after readers have to be instantiated + // Because the prepend and append readers have to be instantiated // on runtime //newFilter.setInitialized(true); return newFilter; @@ -210,27 +210,27 @@ public final class ConcatFilter extends BaseParamFilterReader Parameter[] params = getParameters(); if (params != null) { for (int i = 0; i < params.length; i++) { - if ("before".equals(params[i].getName())) { - setBefore(new File(params[i].getValue())); + if ("prepend".equals(params[i].getName())) { + setPrepend(new File(params[i].getValue())); continue; } - if ("after".equals(params[i].getName())) { - setAfter(new File(params[i].getValue())); + if ("append".equals(params[i].getName())) { + setAppend(new File(params[i].getValue())); continue; } } } - if (before != null) { - if (!before.isAbsolute()) { - before = new File(getProject().getBaseDir(), before.getPath()); + if (prepend != null) { + if (!prepend.isAbsolute()) { + prepend = new File(getProject().getBaseDir(), prepend.getPath()); } - beforeReader = new BufferedReader(new FileReader(before)); + prependReader = new BufferedReader(new FileReader(prepend)); } - if (after != null) { - if (!after.isAbsolute()) { - after = new File(getProject().getBaseDir(), after.getPath()); + if (append != null) { + if (!append.isAbsolute()) { + append = new File(getProject().getBaseDir(), append.getPath()); } - afterReader = new BufferedReader(new FileReader(after)); + appendReader = new BufferedReader(new FileReader(append)); } } diff --git a/src/testcases/org/apache/tools/ant/filters/ConcatFilterTest.java b/src/testcases/org/apache/tools/ant/filters/ConcatFilterTest.java index 15d7be6b1..c97b68a27 100644 --- a/src/testcases/org/apache/tools/ant/filters/ConcatFilterTest.java +++ b/src/testcases/org/apache/tools/ant/filters/ConcatFilterTest.java @@ -69,7 +69,7 @@ public class ConcatFilterTest extends BuildFileTest { private static FileUtils fu = FileUtils.newFileUtils(); private static final String lSep = System.getProperty("line.separator"); - private static final String FILE_BEGINNING_WITH = + private static final String FILE_PREPEND_WITH = "this-should-be-the-first-line" + lSep + "Line 1" + lSep + "Line 2" + lSep @@ -77,7 +77,7 @@ public class ConcatFilterTest extends BuildFileTest { + "Line 4" + lSep ; - private static final String FILE_BEGINNING = + private static final String FILE_PREPEND = "Line 1" + lSep + "Line 2" + lSep + "Line 3" + lSep @@ -85,7 +85,7 @@ public class ConcatFilterTest extends BuildFileTest { + "Line 5" + lSep ; - private static final String FILE_ENDING_WITH = + private static final String FILE_APPEND_WITH = "Line 57" + lSep + "Line 58" + lSep + "Line 59" + lSep @@ -93,7 +93,7 @@ public class ConcatFilterTest extends BuildFileTest { + "this-should-be-the-last-line" + lSep ; - private static final String FILE_ENDING = + private static final String FILE_APPEND = "Line 56" + lSep + "Line 57" + lSep + "Line 58" + lSep @@ -112,7 +112,7 @@ public class ConcatFilterTest extends BuildFileTest { public void tearDown() { // I dont know why - but on my machine I always get a - // "Unable to delete file ...result\after.txt" (or before.txt) + // "Unable to delete file ...result\append.txt" (or prepend.txt) // from Delete.removeDir(Delete.java:612). // Win2000, JDK 1.4.1_02 // A before doesn´t work. From 10ms to 3000ms. @@ -137,59 +137,59 @@ public class ConcatFilterTest extends BuildFileTest { } public void testFilterReaderBefore() throws IOException { - executeTarget("testFilterReaderBefore"); - File resultFile = getProject().resolveFile("result/concat.filterReaderBefore.test"); + executeTarget("testFilterReaderPrepend"); + File resultFile = getProject().resolveFile("result/concat.filterReaderPrepend.test"); String resultContent = fu.readFully(new java.io.FileReader(resultFile)); - assertTrue("First 5 lines differs.", resultContent.startsWith(FILE_BEGINNING_WITH)); - assertTrue("Last 5 lines differs.", resultContent.endsWith(FILE_ENDING)); + assertTrue("First 5 lines differs.", resultContent.startsWith(FILE_PREPEND_WITH)); + assertTrue("Last 5 lines differs.", resultContent.endsWith(FILE_APPEND)); } public void testFilterReaderAfter() throws IOException { - executeTarget("testFilterReaderAfter"); - File resultFile = getProject().resolveFile("result/concat.filterReaderAfter.test"); + executeTarget("testFilterReaderAppend"); + File resultFile = getProject().resolveFile("result/concat.filterReaderAppend.test"); String resultContent = fu.readFully(new java.io.FileReader(resultFile)); - assertTrue("First 5 lines differs.", resultContent.startsWith(FILE_BEGINNING)); - assertTrue("Last 5 lines differs.", resultContent.endsWith(FILE_ENDING_WITH)); + assertTrue("First 5 lines differs.", resultContent.startsWith(FILE_PREPEND)); + assertTrue("Last 5 lines differs.", resultContent.endsWith(FILE_APPEND_WITH)); } public void testFilterReaderBeforeAfter() throws IOException { - executeTarget("testFilterReaderBeforeAfter"); - File resultFile = getProject().resolveFile("result/concat.filterReaderBeforeAfter.test"); + executeTarget("testFilterReaderPrependAppend"); + File resultFile = getProject().resolveFile("result/concat.filterReaderPrependAppend.test"); String resultContent = fu.readFully(new java.io.FileReader(resultFile)); - assertTrue("First 5 lines differs.", resultContent.startsWith(FILE_BEGINNING_WITH)); - assertTrue("Last 5 lines differs.", resultContent.endsWith(FILE_ENDING_WITH)); + assertTrue("First 5 lines differs.", resultContent.startsWith(FILE_PREPEND_WITH)); + assertTrue("Last 5 lines differs.", resultContent.endsWith(FILE_APPEND_WITH)); } public void testConcatFilter() throws IOException { executeTarget("testConcatFilter"); File resultFile = getProject().resolveFile("result/concat.concatfilter.test"); String resultContent = fu.readFully(new java.io.FileReader(resultFile)); - assertTrue("First 5 lines differs.", resultContent.startsWith(FILE_BEGINNING)); - assertTrue("Last 5 lines differs.", resultContent.endsWith(FILE_ENDING)); + assertTrue("First 5 lines differs.", resultContent.startsWith(FILE_PREPEND)); + assertTrue("Last 5 lines differs.", resultContent.endsWith(FILE_APPEND)); } public void testConcatFilterBefore() throws IOException { - executeTarget("testConcatFilterBefore"); - File resultFile = getProject().resolveFile("result/concat.concatfilterBefore.test"); + executeTarget("testConcatFilterPrepend"); + File resultFile = getProject().resolveFile("result/concat.concatfilterPrepend.test"); String resultContent = fu.readFully(new java.io.FileReader(resultFile)); - assertTrue("First 5 lines differs.", resultContent.startsWith(FILE_BEGINNING_WITH)); - assertTrue("Last 5 lines differs.", resultContent.endsWith(FILE_ENDING)); + assertTrue("First 5 lines differs.", resultContent.startsWith(FILE_PREPEND_WITH)); + assertTrue("Last 5 lines differs.", resultContent.endsWith(FILE_APPEND)); } public void testConcatFilterAfter() throws IOException { - executeTarget("testConcatFilterAfter"); - File resultFile = getProject().resolveFile("result/concat.concatfilterAfter.test"); + executeTarget("testConcatFilterAppend"); + File resultFile = getProject().resolveFile("result/concat.concatfilterAppend.test"); String resultContent = fu.readFully(new java.io.FileReader(resultFile)); - assertTrue("First 5 lines differs.", resultContent.startsWith(FILE_BEGINNING)); - assertTrue("Last 5 lines differs.", resultContent.endsWith(FILE_ENDING_WITH)); + assertTrue("First 5 lines differs.", resultContent.startsWith(FILE_PREPEND)); + assertTrue("Last 5 lines differs.", resultContent.endsWith(FILE_APPEND_WITH)); } public void testConcatFilterBeforeAfter() throws IOException { - executeTarget("testConcatFilterBeforeAfter"); - File resultFile = getProject().resolveFile("result/concat.concatfilterBeforeAfter.test"); + executeTarget("testConcatFilterPrependAppend"); + File resultFile = getProject().resolveFile("result/concat.concatfilterPrependAppend.test"); String resultContent = fu.readFully(new java.io.FileReader(resultFile)); - assertTrue("First 5 lines differs.", resultContent.startsWith(FILE_BEGINNING_WITH)); - assertTrue("Last 5 lines differs.", resultContent.endsWith(FILE_ENDING_WITH)); + assertTrue("First 5 lines differs.", resultContent.startsWith(FILE_PREPEND_WITH)); + assertTrue("Last 5 lines differs.", resultContent.endsWith(FILE_APPEND_WITH)); } } \ No newline at end of file