bodewig     2004/07/02 00:23:54

  Modified:    .        WHATSNEW CONTRIBUTORS
               src/main/org/apache/tools/ant/taskdefs SubAnt.java
               src/main/org/apache/tools/ant/util XMLFragment.java
  Log:
  fix <subant>'s I/O handling
  
  Submitted by: Christian Knorr <Christian dot Knorr at space dot eads dot net>
  
  Revision  Changes    Path
  1.635     +2 -0      ant/WHATSNEW
  
  Index: WHATSNEW
  ===================================================================
  RCS file: /home/cvs/ant/WHATSNEW,v
  retrieving revision 1.634
  retrieving revision 1.635
  diff -u -r1.634 -r1.635
  --- WHATSNEW  28 Jun 2004 08:49:46 -0000      1.634
  +++ WHATSNEW  2 Jul 2004 07:23:53 -0000       1.635
  @@ -156,6 +156,8 @@
   
   * <telnet> and <rexec> didn't close the session.  Bugzilla Report 25935.
   
  +* <subant> and XmlLogger didn't play nicley together.
  +
   Other changes:
   --------------
   * doc fix concerning the dependencies of the ftp task
  
  
  
  1.26      +1 -0      ant/CONTRIBUTORS
  
  Index: CONTRIBUTORS
  ===================================================================
  RCS file: /home/cvs/ant/CONTRIBUTORS,v
  retrieving revision 1.25
  retrieving revision 1.26
  diff -u -r1.25 -r1.26
  --- CONTRIBUTORS      23 Jun 2004 13:32:57 -0000      1.25
  +++ CONTRIBUTORS      2 Jul 2004 07:23:53 -0000       1.26
  @@ -21,6 +21,7 @@
   Charles Hudak
   Charlie Hubbard
   Chris Povirk
  +Christian Knorr
   Christoph Wilhelms
   Christophe Labouisse
   Christopher A. Longo
  
  
  
  1.17      +89 -2     ant/src/main/org/apache/tools/ant/taskdefs/SubAnt.java
  
  Index: SubAnt.java
  ===================================================================
  RCS file: /home/cvs/ant/src/main/org/apache/tools/ant/taskdefs/SubAnt.java,v
  retrieving revision 1.16
  retrieving revision 1.17
  diff -u -r1.16 -r1.17
  --- SubAnt.java       14 Apr 2004 15:42:06 -0000      1.16
  +++ SubAnt.java       2 Jul 2004 07:23:54 -0000       1.17
  @@ -61,6 +61,7 @@
   
       private Path buildpath;
   
  +    private Ant ant = null;
       private String target = null;
       private String antfile = "build.xml";
       private File genericantfile = null;
  @@ -72,6 +73,90 @@
       private Vector properties = new Vector();
       private Vector references = new Vector();
       private Vector propertySets = new Vector();
  +
  +    /**
  +     * Pass output sent to System.out to the new project.
  +     *
  +     * @param output a line of output
  +     * @since Ant 1.6.2
  +     */
  +    public void handleOutput(String output) {
  +        if (ant != null) {
  +            ant.handleOutput(output);
  +        } else {
  +            super.handleOutput(output);
  +        }
  +    }
  +
  +    /**
  +     * Process input into the ant task
  +     *
  +     * @param buffer the buffer into which data is to be read.
  +     * @param offset the offset into the buffer at which data is stored.
  +     * @param length the amount of data to read
  +     *
  +     * @return the number of bytes read
  +     *
  +     * @exception IOException if the data cannot be read
  +     *
  +     * @see Task#handleInput(byte[], int, int)
  +     *
  +     * @since Ant 1.6.2
  +     */
  +    public int handleInput(byte[] buffer, int offset, int length)
  +        throws IOException {
  +        if (ant != null) {
  +            return ant.handleInput(buffer, offset, length);
  +        } else {
  +            return super.handleInput(buffer, offset, length);
  +        }
  +    }
  +
  +    /**
  +     * Pass output sent to System.out to the new project.
  +     *
  +     * @param output The output to log. Should not be <code>null</code>.
  +     *
  +     * @since Ant 1.6.2
  +     */
  +    public void handleFlush(String output) {
  +        if (ant != null) {
  +            ant.handleFlush(output);
  +        } else {
  +            super.handleFlush(output);
  +        }
  +    }
  +
  +    /**
  +     * Pass output sent to System.err to the new project.
  +     *
  +     * @param output The error output to log. Should not be 
<code>null</code>.
  +     *
  +     * @since Ant 1.6.2
  +     */
  +    public void handleErrorOutput(String output) {
  +        if (ant != null) {
  +            ant.handleErrorOutput(output);
  +        } else {
  +            super.handleErrorOutput(output);
  +        }
  +    }
  +
  +    /**
  +     * Pass output sent to System.err to the new project.
  +     *
  +     * @param output The error output to log. Should not be 
<code>null</code>.
  +     *
  +     * @since Ant 1.6.2
  +     */
  +    public void handleErrorFlush(String output) {
  +        if (ant != null) {
  +            ant.handleErrorFlush(output);
  +        } else {
  +            super.handleErrorFlush(output);
  +        }
  +    }
  +
       /**
        * Runs the various sub-builds.
        */
  @@ -167,7 +252,7 @@
               return;
           }
   
  -        Ant ant = createAntTask(directory);
  +        ant = createAntTask(directory);
           String antfilename = null;
           try {
               antfilename = file.getCanonicalPath();
  @@ -193,7 +278,9 @@
                   + "' of: " + antfilename + "\n"
                   + e.toString(),
                   Project.MSG_WARN);
  -        }
  +        } finally {
  +            ant = null;
  +        }        
       }
   
       /**
  
  
  
  1.9       +1 -1      ant/src/main/org/apache/tools/ant/util/XMLFragment.java
  
  Index: XMLFragment.java
  ===================================================================
  RCS file: /home/cvs/ant/src/main/org/apache/tools/ant/util/XMLFragment.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- XMLFragment.java  25 May 2004 08:25:01 -0000      1.8
  +++ XMLFragment.java  2 Jul 2004 07:23:54 -0000       1.9
  @@ -87,7 +87,7 @@
           }
       }
   
  -   public class Child implements DynamicConfiguratorNS {
  +    public class Child implements DynamicConfiguratorNS {
           private Element e;
   
           Child(Element e) {
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to