peterreilly 2005/05/30 03:05:41 Modified: . Tag: ANT_16_BRANCH WHATSNEW src/main/org/apache/tools/ant/taskdefs Tag: ANT_16_BRANCH MacroDef.java src/etc/testcases/taskdefs Tag: ANT_16_BRANCH macrodef.xml src/testcases/org/apache/tools/ant/taskdefs Tag: ANT_16_BRANCH MacroDefTest.java Log: sync fix for 35109 Revision Changes Path No revision No revision 1.503.2.232 +3 -0 ant/WHATSNEW Index: WHATSNEW =================================================================== RCS file: /home/cvs/ant/WHATSNEW,v retrieving revision 1.503.2.231 retrieving revision 1.503.2.232 diff -u -r1.503.2.231 -r1.503.2.232 --- WHATSNEW 20 May 2005 16:13:46 -0000 1.503.2.231 +++ WHATSNEW 30 May 2005 10:05:40 -0000 1.503.2.232 @@ -10,6 +10,9 @@ * <move> was unable to replace existing files or write into existing directories. Bugzilla report 34962. +* <macrodef> with redefined default values was incorrect. (Fix for + 31215 had a bug). Bugzilla report 35109. + Changes from Ant 1.6.3 to Ant 1.6.4 =================================== No revision No revision 1.7.2.22 +26 -4 ant/src/main/org/apache/tools/ant/taskdefs/MacroDef.java Index: MacroDef.java =================================================================== RCS file: /home/cvs/ant/src/main/org/apache/tools/ant/taskdefs/MacroDef.java,v retrieving revision 1.7.2.21 retrieving revision 1.7.2.22 diff -u -r1.7.2.21 -r1.7.2.22 --- MacroDef.java 15 Mar 2005 15:11:24 -0000 1.7.2.21 +++ MacroDef.java 30 May 2005 10:05:41 -0000 1.7.2.22 @@ -622,13 +622,14 @@ } /** - * similar equality method for macrodef, ignores project and + * same or similar equality method for macrodef, ignores project and * runtime info. * * @param obj an <code>Object</code> value + * @param same if true test for sameness, otherwise just similiar * @return a <code>boolean</code> value */ - public boolean similar(Object obj) { + private boolean sameOrSimilar(Object obj, boolean same) { if (obj == this) { return true; } @@ -649,7 +650,8 @@ // Allow two macro definitions with the same location // to be treated as similar - bugzilla 31215 if (other.getLocation() != null - && other.getLocation().equals(getLocation())) { + && other.getLocation().equals(getLocation()) + && !same) { return true; } if (text == null) { @@ -686,6 +688,26 @@ } /** + * Similar method for this definition + * + * @param obj another definition + * @return true if the definitions are similar + */ + public boolean similar(Object obj) { + return sameOrSimilar(obj, false); + } + + /** + * Equality method for this definition + * + * @param obj another definition + * @return true if the definitions are the same + */ + public boolean sameDefinition(Object obj) { + return sameOrSimilar(obj, true); + } + + /** * extends AntTypeDefinition, on create * of the object, the template macro definition * is given. @@ -729,7 +751,7 @@ return false; } MyAntTypeDefinition otherDef = (MyAntTypeDefinition) other; - return macroDef.similar(otherDef.macroDef); + return macroDef.sameDefinition(otherDef.macroDef); } /** No revision No revision 1.2.2.11 +17 -0 ant/src/etc/testcases/taskdefs/macrodef.xml Index: macrodef.xml =================================================================== RCS file: /home/cvs/ant/src/etc/testcases/taskdefs/macrodef.xml,v retrieving revision 1.2.2.10 retrieving revision 1.2.2.11 diff -u -r1.2.2.10 -r1.2.2.11 --- macrodef.xml 4 Jun 2004 07:39:08 -0000 1.2.2.10 +++ macrodef.xml 30 May 2005 10:05:41 -0000 1.2.2.11 @@ -220,7 +220,24 @@ <explicit/> </sequential> </macrodef> + </target> + + <property name="default.override" value="old"/> + <macrodef name="simple.override"> + <attribute name="attr" default="${default.override}"/> + <sequential> + <echo>value is @{attr}</echo> + </sequential> + </macrodef> + + <target name="override.default"> + <antcall target="override.call"> + <param name="default.override" value="new"/> + </antcall> + </target> + <target name="override.call"> + <simple.override/> </target> </project> No revision No revision 1.2.2.15 +5 -0 ant/src/testcases/org/apache/tools/ant/taskdefs/MacroDefTest.java Index: MacroDefTest.java =================================================================== RCS file: /home/cvs/ant/src/testcases/org/apache/tools/ant/taskdefs/MacroDefTest.java,v retrieving revision 1.2.2.14 retrieving revision 1.2.2.15 diff -u -r1.2.2.14 -r1.2.2.15 --- MacroDefTest.java 4 Jun 2004 07:39:09 -0000 1.2.2.14 +++ MacroDefTest.java 30 May 2005 10:05:41 -0000 1.2.2.15 @@ -108,6 +108,11 @@ "attribute.description", "description is hello world"); } + public void testOverrideDefault() { + expectLog( + "override.default", + "value is new"); + } public void testImplicit() { expectLog( "implicit", "Before implicitIn implicitAfter implicit");
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]