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]

Reply via email to