ant-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From peterrei...@apache.org
Subject cvs commit: ant/docs faq.html
Date Wed, 18 Feb 2004 16:05:20 GMT
peterreilly    2004/02/18 08:05:20

  Modified:    xdocs    Tag: ANT_16_BRANCH faq.xml
               docs     Tag: ANT_16_BRANCH faq.html
  Log:
  sync with HEAD
  
  Revision  Changes    Path
  No                   revision
  No                   revision
  1.38.2.10 +50 -0     ant/xdocs/faq.xml
  
  Index: faq.xml
  ===================================================================
  RCS file: /home/cvs/ant/xdocs/faq.xml,v
  retrieving revision 1.38.2.9
  retrieving revision 1.38.2.10
  diff -u -r1.38.2.9 -r1.38.2.10
  --- faq.xml	16 Feb 2004 16:45:09 -0000	1.38.2.9
  +++ faq.xml	18 Feb 2004 16:05:19 -0000	1.38.2.10
  @@ -1357,6 +1357,56 @@
         </answer>
       </faq>
   
  +    <faq id="unknownelement.taskcontainer">
  +      <question>
  +        Why do my custom task containers see Unknown Elements in Ant 1.6
  +        - they worked in Ant 1.5?
  +      </question>
  +      <answer>
  +        <p>
  +          The objects added in TaskContainer.addTask(Task task)
  +          have changed from  Tasks to UnknownElements.
  +        </p>
  +        <p>
  +          There was a number of valid reasons for this change. But the backward
  +          compatibility problems were not noticied until after Ant 1.6.0 was
  +          released.
  +        </p>
  +        <p>
  +          Your container class will need to be modified to check if the Task
  +          is an UnknownElement and call perform on it to
  +          convert it to a Task and to execute it.
  +          (see apache.tools.ant.taskdefs.Sequential)
  +        </p>
  +        <p>
  +          If you want to do more processing on the task,
  +          you need to use the techniques in apache.tools.ant.taskdefs.Antlib#execute()
  +          This does make use of one 1.6 method call (UE#getRealObject()),
  +          you need to use UE#getTask() instread - this will
  +          return null for non tasks (types like fileset id=x).
  +        </p>
  +        <p>
  +          So.. interate over the tasks, if they are UEs, convert them to
  +          tasks, using UE#maybeConfigure and UE#getTask()
  +        </p>
  +        <source><![CDATA[
  +        for (Iterator i = tasks.iterator(); i.hasNext();) {
  +           Task t = (Task) i.next();
  +           if (t instanceof UnknownElement) {
  +              ((UnknownElement) t).maybeConfigure();
  +              t = ((UnknownElement) t).getTask();
  +              if (t == null) {
  +                  continue;
  +              }
  +           }
  +           // .... original Custom code
  +        }
  +        ]]></source>
  +        <p>
  +          This approach should work for ant1.5 and ant1.6.
  +        </p>
  +      </answer>
  +    </faq>
     </faqsection>
   
   </document>
  
  
  
  No                   revision
  No                   revision
  1.77.2.10 +55 -0     ant/docs/faq.html
  
  Index: faq.html
  ===================================================================
  RCS file: /home/cvs/ant/docs/faq.html,v
  retrieving revision 1.77.2.9
  retrieving revision 1.77.2.10
  diff -u -r1.77.2.9 -r1.77.2.10
  --- faq.html	12 Feb 2004 12:38:58 -0000	1.77.2.9
  +++ faq.html	18 Feb 2004 16:05:20 -0000	1.77.2.10
  @@ -333,6 +333,12 @@
                   <li><a href="#1.5.2-zip-broken">
     <code>&lt;zip&gt;</code> is broken in Ant 1.5.2.
         </a></li>
  +                <li><a href="#unknownelement.taskcontainer">
  +  
  +        Why do my custom task containers see Unknown Elements in Ant 1.6
  +        - they worked in Ant 1.5?
  +      
  +      </a></li>
               </ul>
       
         <h3 class="section">Answers</h3>
  @@ -1535,6 +1541,55 @@
           17871</a> and <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=18403">Bug
           18403</a>.  All of them are supposed to be fixed with Ant
           1.5.3 (and only 18403 should exist in 1.5.3beta1).</p>
  +                    <p class="faq">
  +      <a name="unknownelement.taskcontainer"></a>
  +      
  +        Why do my custom task containers see Unknown Elements in Ant 1.6
  +        - they worked in Ant 1.5?
  +      
  +    </p>
  +                  <p>
  +          The objects added in TaskContainer.addTask(Task task)
  +          have changed from  Tasks to UnknownElements.
  +        </p>
  +                        <p>
  +          There was a number of valid reasons for this change. But the backward
  +          compatibility problems were not noticied until after Ant 1.6.0 was
  +          released.
  +        </p>
  +                        <p>
  +          Your container class will need to be modified to check if the Task
  +          is an UnknownElement and call perform on it to
  +          convert it to a Task and to execute it.
  +          (see apache.tools.ant.taskdefs.Sequential)
  +        </p>
  +                        <p>
  +          If you want to do more processing on the task,
  +          you need to use the techniques in apache.tools.ant.taskdefs.Antlib#execute()
  +          This does make use of one 1.6 method call (UE#getRealObject()),
  +          you need to use UE#getTask() instread - this will
  +          return null for non tasks (types like fileset id=x).
  +        </p>
  +                        <p>
  +          So.. interate over the tasks, if they are UEs, convert them to
  +          tasks, using UE#maybeConfigure and UE#getTask()
  +        </p>
  +                        <pre class="code">
  +        for (Iterator i = tasks.iterator(); i.hasNext();) {
  +           Task t = (Task) i.next();
  +           if (t instanceof UnknownElement) {
  +              ((UnknownElement) t).maybeConfigure();
  +              t = ((UnknownElement) t).getTask();
  +              if (t == null) {
  +                  continue;
  +              }
  +           }
  +           // .... original Custom code
  +        }
  +        </pre>
  +                        <p>
  +          This approach should work for ant1.5 and ant1.6.
  +        </p>
                       </div>
     </div>
   
  
  
  

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


Mime
View raw message