You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ant.apache.org by an...@apache.org on 2003/07/22 13:58:55 UTC

cvs commit: ant/src/main/org/apache/tools/ant Project.java UnknownElement.java

antoine     2003/07/22 04:58:55

  Modified:    src/main/org/apache/tools/ant Project.java
                        UnknownElement.java
  Added:       src/etc/testcases/taskdefs calltarget.xml
               src/testcases/org/apache/tools/ant/taskdefs
                        CallTargetTest.java
  Log:
  References not passed by antcall
  PR: 21724
  
  Revision  Changes    Path
  1.1                  ant/src/etc/testcases/taskdefs/calltarget.xml
  
  Index: calltarget.xml
  ===================================================================
  <?xml version="1.0"?>
  <project name ="calltarget-test" default="testinheritreffileset" basedir=".">
      <property name="tmp.dir" value="tmp.dir" />
      <target name="setup">
          <mkdir dir="${tmp.dir}"/>
      </target>
      <target name="cleanup">
          <delete dir="${tmp.dir}" quiet="true"/>
      </target>
      <target name="mytarget">
        <pathconvert property="myproperty" targetos="unix" refid="myfileset"/>
        <echo message="myproperty=${myproperty}"/>
      </target>
      <target name="testinheritreffileset">
      <!-- this testcase should show that the fileset defined here
      can be read in the called target -->
        <fileset dir="." id="myfileset">
          <include name="calltarget.xml"/>
        </fileset>
        <antcall target="mytarget" inheritrefs="true"/>
      </target>
      <target name="copytest2">
         <copy file="${tmp.dir}/copytest.in" toFile="${tmp.dir}/copytest1.out" overwrite="true">
            <filterset refid="foo"/>
         </copy>
      </target>
      <target name="testinheritreffilterset" depends="setup">
         <echo file="${tmp.dir}/copytest.in">@@foo@@</echo>
         <filterset id="foo" begintoken="@@" endtoken="@@">
            <filter token="foo" value="bar"/>
         </filterset>
         <antcall target="copytest2" inheritrefs="true"/>
         <copy file="${tmp.dir}/copytest.in" toFile="${tmp.dir}/copytest2.out" overwrite="true">
            <filterset refid="foo"/>
         </copy>
         <loadfile srcFile="${tmp.dir}/copytest2.out" property="copytest2"/>
         <loadfile srcFile="${tmp.dir}/copytest1.out" property="copytest1"/>
         <condition property="success">
             <equals arg1="${copytest1}" arg2="${copytest2}"/>
         </condition>
         <fail message="filterset not properly passed across by antcall" unless="success"/>
      </target>
  
  
  </project>
  
  
  1.1                  ant/src/testcases/org/apache/tools/ant/taskdefs/CallTargetTest.java
  
  Index: CallTargetTest.java
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   *
   * Copyright (c) 2003 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution, if
   *    any, must include the following acknowlegement:
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowlegement may appear in the software itself,
   *    if and wherever such third-party acknowlegements normally appear.
   *
   * 4. The names "Ant" and "Apache Software
   *    Foundation" must not be used to endorse or promote products derived
   *    from this software without prior written permission. For written
   *    permission, please contact apache@apache.org.
   *
   * 5. Products derived from this software may not be called "Apache"
   *    nor may "Apache" appear in their names without prior written
   *    permission of the Apache Group.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  
  package org.apache.tools.ant.taskdefs;
  
  import org.apache.tools.ant.BuildFileTest;
  import org.apache.tools.ant.Project;
  import org.apache.tools.ant.util.JavaEnvUtils;
  
  /**
   * @author Nico Seessle <ni...@seessle.de>
   */
  public class CallTargetTest extends BuildFileTest {
  
      public CallTargetTest(String name) {
          super(name);
      }
  
      public void setUp() {
          configureProject("src/etc/testcases/taskdefs/calltarget.xml");
      }
  
      // see bugrep 21724 (references not passing through with antcall)
      public void testInheritRefFileSet() {
          expectLogContaining("testinheritreffileset", "calltarget.xml");
      }
  
      // see bugrep 21724 (references not passing through with antcall)
      public void testInheritFilterset() {
          project.executeTarget("testinheritfilterset");
      }
  
      public void tearDown() {
          project.executeTarget("cleanup");
      }
  }
  
  
  
  1.148     +4 -3      ant/src/main/org/apache/tools/ant/Project.java
  
  Index: Project.java
  ===================================================================
  RCS file: /home/cvs/ant/src/main/org/apache/tools/ant/Project.java,v
  retrieving revision 1.147
  retrieving revision 1.148
  diff -u -r1.147 -r1.148
  --- Project.java	18 Jul 2003 12:45:54 -0000	1.147
  +++ Project.java	22 Jul 2003 11:58:55 -0000	1.148
  @@ -2063,8 +2063,9 @@
               Object o = super.get(key);
               if (o instanceof UnknownElement) {
                   // Make sure that
  -                ((UnknownElement) o).maybeConfigure();
  -                o = ((UnknownElement) o).getTask();
  +                UnknownElement ue = (UnknownElement) o;
  +                ue.maybeConfigure();
  +                o = ue.getRealThing();
               }
               return o;
           }
  
  
  
  1.57      +10 -0     ant/src/main/org/apache/tools/ant/UnknownElement.java
  
  Index: UnknownElement.java
  ===================================================================
  RCS file: /home/cvs/ant/src/main/org/apache/tools/ant/UnknownElement.java,v
  retrieving revision 1.56
  retrieving revision 1.57
  diff -u -r1.56 -r1.57
  --- UnknownElement.java	18 Jul 2003 12:45:55 -0000	1.56
  +++ UnknownElement.java	22 Jul 2003 11:58:55 -0000	1.57
  @@ -458,6 +458,16 @@
       }
   
       /**
  +     * Return the configured object
  +     *
  +     * @return the real thing whatever it is
  +     *
  +     * @since ant 1.6
  +     */
  +    public Object getRealThing() {
  +        return realThing;
  +    }
  +    /**
        * Try to create a nested element of <code>parent</code> for the
        * given tag.
        *
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org
For additional commands, e-mail: dev-help@ant.apache.org