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/DefaultExcludesTest.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]