The departure point of these changes is that the DefaultExcludesTest did not
pass any more on Windows, due probably to changes in logging.
My guess is : I was getting logs containing \r\n where \n was expected.
This brought me to a more "programmatic" way of testing the defaultexcludes
task, and to the need to have a reset function.
Cheers,
Antoine
----- Original Message -----
From: <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Monday, July 21, 2003 12:52 PM
Subject: cvs commit: ant/docs/manual/CoreTasks defaultexcludes.html
> antoine 2003/07/21 03:52:20
>
> Modified: src/main/org/apache/tools/ant DirectoryScanner.java
> src/main/org/apache/tools/ant/taskdefs DefaultExcludes.java
> src/etc/testcases/taskdefs defaultexcludes.xml
> src/testcases/org/apache/tools/ant/taskdefs
> DefaultExcludesTest.java
> docs/manual/CoreTasks defaultexcludes.html
> Log:
> Add a method in DirectoryScanner to reset the default exclude patterns
> Add corresponding functionality in <defaultexcludes>
> Update tests
>
> Revision Changes Path
> 1.50 +14 -4
ant/src/main/org/apache/tools/ant/DirectoryScanner.java
>
> Index: DirectoryScanner.java
> ===================================================================
> RCS file:
/home/cvs/ant/src/main/org/apache/tools/ant/DirectoryScanner.java,v
> retrieving revision 1.49
> retrieving revision 1.50
> diff -u -r1.49 -r1.50
> --- DirectoryScanner.java 19 Jul 2003 17:08:06 -0000 1.49
> +++ DirectoryScanner.java 21 Jul 2003 10:52:19 -0000 1.50
> @@ -205,11 +205,8 @@
> * @see #addDefaultExcludes()
> */
> private static Vector defaultExcludes = new Vector();
> -
> static {
> - for (int i = 0; i < DEFAULTEXCLUDES.length; i++) {
> - defaultExcludes.add(DEFAULTEXCLUDES[i]);
> - }
> + resetDefaultExcludes();
> }
>
> /** The base directory to be scanned. */
> @@ -452,6 +449,19 @@
> */
> public static boolean removeDefaultExclude(String s) {
> return defaultExcludes.remove(s);
> + }
> +
> + /**
> + * Go back to the hard wired default exclude patterns
> + *
> + * @since Ant 1.6
> + */
> + public static void resetDefaultExcludes() {
> + defaultExcludes = new Vector();
> +
> + for (int i = 0; i < DEFAULTEXCLUDES.length; i++) {
> + defaultExcludes.add(DEFAULTEXCLUDES[i]);
> + }
> }
>
> /**
>
>
>
> 1.5 +14 -3
ant/src/main/org/apache/tools/ant/taskdefs/DefaultExcludes.java
>
> Index: DefaultExcludes.java
> ===================================================================
> RCS file:
/home/cvs/ant/src/main/org/apache/tools/ant/taskdefs/DefaultExcludes.java,v
> retrieving revision 1.4
> retrieving revision 1.5
> diff -u -r1.4 -r1.5
> --- DefaultExcludes.java 19 Jul 2003 11:20:12 -0000 1.4
> +++ DefaultExcludes.java 21 Jul 2003 10:52:19 -0000 1.5
> @@ -71,7 +71,7 @@
> public class DefaultExcludes extends Task {
> private String add = "";
> private String remove = "";
> -
> + private boolean defaultrequested = false;
> private boolean echo = false;
>
> // by default, messages are always displayed
> @@ -83,11 +83,14 @@
> * @exception BuildException if someting goes wrong with the build
> */
> public void execute() throws BuildException {
> - if (add.equals("") && remove.equals("") && (echo == false)) {
> + if (defaultrequested == false && add.equals("") &&
remove.equals("") && (echo == false)) {
> throw new BuildException("<defaultexcludes> task must set "
> - + "at least one atribute (echo=\"false\""
> + + "at least one attribute (echo=\"false\""
> + " doesn't count since that is the default");
> }
> + if (defaultrequested == true) {
> + DirectoryScanner.resetDefaultExcludes();
> + }
> if (!add.equals("")) {
> DirectoryScanner.addDefaultExclude(add);
> }
> @@ -105,6 +108,14 @@
> }
> }
>
> + /**
> + * go back to standard default patterns
> + *
> + * @param def if true go back to default patterns
> + */
> + public void setDefault(boolean def) {
> + defaultrequested = def;
> + }
> /**
> * Pattern to add to the default excludes
> *
>
>
>
> 1.2 +2 -4 ant/src/etc/testcases/taskdefs/defaultexcludes.xml
>
> Index: defaultexcludes.xml
> ===================================================================
> RCS file: /home/cvs/ant/src/etc/testcases/taskdefs/defaultexcludes.xml,v
> retrieving revision 1.1
> retrieving revision 1.2
> diff -u -r1.1 -r1.2
> --- defaultexcludes.xml 9 May 2003 12:10:36 -0000 1.1
> +++ defaultexcludes.xml 21 Jul 2003 10:52:19 -0000 1.2
> @@ -7,13 +7,11 @@
> </target>
>
> <target name="test2">
> - <defaultexcludes add="foo" echo="true"/>
> - <defaultexcludes remove="foo" echo="false"/>
> + <defaultexcludes default="true" add="foo" echo="true"/>
> </target>
>
> <target name="test3">
> - <defaultexcludes remove="**/CVS" echo="true"/>
> - <defaultexcludes add="**/CVS" echo="false"/>
> + <defaultexcludes default="true" remove="**/CVS" echo="true"/>
> </target>
>
> </project>
>
>
>
> 1.3 +61 -46
ant/src/testcases/org/apache/tools/ant/taskdefs/DefaultExcludesTest.java
>
> Index: DefaultExcludesTest.java
> ===================================================================
> RCS file:
/home/cvs/ant/src/testcases/org/apache/tools/ant/taskdefs/DefaultExcludesTes
t.java,v
> retrieving revision 1.2
> retrieving revision 1.3
> diff -u -r1.2 -r1.3
> --- DefaultExcludesTest.java 17 Jul 2003 10:20:16 -0000 1.2
> +++ DefaultExcludesTest.java 21 Jul 2003 10:52:19 -0000 1.3
> @@ -55,6 +55,7 @@
> package org.apache.tools.ant.taskdefs;
>
> import org.apache.tools.ant.BuildFileTest;
> +import org.apache.tools.ant.DirectoryScanner;
>
> /**
> * @author Gus Heck <[EMAIL PROTECTED]>
> @@ -71,59 +72,73 @@
>
> // Output the default excludes
> public void test1() {
> - expectLog("test1", "Current Default Excludes:\n"+
> - " **/*~\n"+
> - " **/#*#\n"+
> - " **/.#*\n"+
> - " **/%*%\n"+
> - " **/._*\n"+
> - " **/CVS\n"+
> - " **/CVS/**\n"+
> - " **/.cvsignore\n"+
> - " **/SCCS\n"+
> - " **/SCCS/**\n"+
> - " **/vssver.scc\n"+
> - " **/.svn\n"+
> - " **/.svn/**\n"+
> - " **/.DS_Store");
> + String[] expected = {
> + "**/*~",
> + "**/#*#",
> + "**/.#*",
> + "**/%*%",
> + "**/._*",
> + "**/CVS",
> + "**/CVS/**",
> + "**/.cvsignore",
> + "**/SCCS",
> + "**/SCCS/**",
> + "**/vssver.scc",
> + "**/.svn",
> + "**/.svn/**",
> + "**/.DS_Store"};
> + project.executeTarget("test1");
> + assertEquals("current default excludes", expected,
DirectoryScanner.getDefaultExcludes());
> }
>
> // adding something to the excludes'
> public void test2() {
> - expectLog("test2", "Current Default Excludes:\n"+
> - " **/*~\n"+
> - " **/#*#\n"+
> - " **/.#*\n"+
> - " **/%*%\n"+
> - " **/._*\n"+
> - " **/CVS\n"+
> - " **/CVS/**\n"+
> - " **/.cvsignore\n"+
> - " **/SCCS\n"+
> - " **/SCCS/**\n"+
> - " **/vssver.scc\n"+
> - " **/.svn\n"+
> - " **/.svn/**\n"+
> - " **/.DS_Store\n"+
> - " foo"); // foo added
> + String[] expected = {
> + "**/*~",
> + "**/#*#",
> + "**/.#*",
> + "**/%*%",
> + "**/._*",
> + "**/CVS",
> + "**/CVS/**",
> + "**/.cvsignore",
> + "**/SCCS",
> + "**/SCCS/**",
> + "**/vssver.scc",
> + "**/.svn",
> + "**/.svn/**",
> + "**/.DS_Store",
> + "foo"};
> + project.executeTarget("test2");
> + assertEquals("current default excludes", expected,
DirectoryScanner.getDefaultExcludes());
> }
>
> // removing something from the defaults
> public void test3() {
> - expectLog("test3", "Current Default Excludes:\n"+
> - " **/*~\n"+
> - " **/#*#\n"+
> - " **/.#*\n"+
> - " **/%*%\n"+
> - " **/._*\n"+
> - //CVS missing
> - " **/CVS/**\n"+
> - " **/.cvsignore\n"+
> - " **/SCCS\n"+
> - " **/SCCS/**\n"+
> - " **/vssver.scc\n"+
> - " **/.svn\n"+
> - " **/.svn/**\n"+
> - " **/.DS_Store");
> + String[] expected = {
> + "**/*~",
> + "**/#*#",
> + "**/.#*",
> + "**/%*%",
> + "**/._*",
> + //CVS missing
> + "**/CVS/**",
> + "**/.cvsignore",
> + "**/SCCS",
> + "**/SCCS/**",
> + "**/vssver.scc",
> + "**/.svn",
> + "**/.svn/**",
> + "**/.DS_Store"};
> + project.executeTarget("test3");
> + assertEquals("current default excludes", expected,
DirectoryScanner.getDefaultExcludes());
> + }
> + private void assertEquals(String message, String[] expected,
String[] actual) {
> + // check that both arrays have the same size
> + assertEquals(message + " : string array length match",
expected.length, actual.length);
> + for (int counter=0; counter <expected.length; counter++) {
> + assertEquals(message + " : " + counter + "th element in
array match", expected[counter], actual[counter]);
> + }
> +
> }
> }
>
>
>
> 1.2 +11 -5 ant/docs/manual/CoreTasks/defaultexcludes.html
>
> Index: defaultexcludes.html
> ===================================================================
> RCS file: /home/cvs/ant/docs/manual/CoreTasks/defaultexcludes.html,v
> retrieving revision 1.1
> retrieving revision 1.2
> diff -u -r1.1 -r1.2
> --- defaultexcludes.html 9 May 2003 12:10:35 -0000 1.1
> +++ defaultexcludes.html 21 Jul 2003 10:52:20 -0000 1.2
> @@ -25,18 +25,24 @@
> <tr>
> <td valign="top">echo</td>
> <td valign="top">whether or not to print out the default
excludes.(defaults to false)</td>
> - <td valign="top" align="center">atribute "true" required if no
> - other argument specified</td>
> + <td valign="top" align="center">attribute "true" required if no
> + other attribute specified</td>
> + </tr>
> + <tr>
> + <td valign="top">default</td>
> + <td valign="top">go back to hard wired default excludes</td>
> + <td valign="top" align="center">attribute "true" required if no
> + if no other attribute is specified</td>
> </tr>
> <tr>
> <td valign="top">add</td>
> <td valign="top">the pattern to add to the default excludes</td>
> - <td valign="top" align="center">if no other atribute is
specified</td>
> + <td valign="top" align="center">if no other attribute is
specified</td>
> </tr>
> <tr>
> <td valign="top">remove</td>
> <td valign="top">remove the specified pattern from the default
excludes</td>
> - <td valign="top" align="center">if no other atribute is
specified</td>
> + <td valign="top" align="center">if no other attribute is
specified</td>
> </tr>
> </table>
>
> @@ -59,7 +65,7 @@
>
> (do several fileset based tasks here)
>
> - <defaultexcludes add="**/*~"/>
> + <defaultexcludes default="true"/>
> </pre>
>
>
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]