Browse Source

fix <subant>'s I/O handling

Submitted by:	Christian Knorr <Christian dot Knorr at space dot eads dot net>


git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@276663 13f79535-47bb-0310-9956-ffa450edef68
master
Stefan Bodewig 21 years ago
parent
commit
3e6dd09ac0
4 changed files with 93 additions and 3 deletions
  1. +1
    -0
      CONTRIBUTORS
  2. +2
    -0
      WHATSNEW
  3. +89
    -2
      src/main/org/apache/tools/ant/taskdefs/SubAnt.java
  4. +1
    -1
      src/main/org/apache/tools/ant/util/XMLFragment.java

+ 1
- 0
CONTRIBUTORS View File

@@ -21,6 +21,7 @@ Bruce Atherton
Charles Hudak Charles Hudak
Charlie Hubbard Charlie Hubbard
Chris Povirk Chris Povirk
Christian Knorr
Christoph Wilhelms Christoph Wilhelms
Christophe Labouisse Christophe Labouisse
Christopher A. Longo Christopher A. Longo


+ 2
- 0
WHATSNEW View File

@@ -156,6 +156,8 @@ Fixed bugs:


* <telnet> and <rexec> didn't close the session. Bugzilla Report 25935. * <telnet> and <rexec> didn't close the session. Bugzilla Report 25935.


* <subant> and XmlLogger didn't play nicley together.

Other changes: Other changes:
-------------- --------------
* doc fix concerning the dependencies of the ftp task * doc fix concerning the dependencies of the ftp task


+ 89
- 2
src/main/org/apache/tools/ant/taskdefs/SubAnt.java View File

@@ -61,6 +61,7 @@ public class SubAnt


private Path buildpath; private Path buildpath;


private Ant ant = null;
private String target = null; private String target = null;
private String antfile = "build.xml"; private String antfile = "build.xml";
private File genericantfile = null; private File genericantfile = null;
@@ -72,6 +73,90 @@ public class SubAnt
private Vector properties = new Vector(); private Vector properties = new Vector();
private Vector references = new Vector(); private Vector references = new Vector();
private Vector propertySets = 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. * Runs the various sub-builds.
*/ */
@@ -167,7 +252,7 @@ public class SubAnt
return; return;
} }


Ant ant = createAntTask(directory);
ant = createAntTask(directory);
String antfilename = null; String antfilename = null;
try { try {
antfilename = file.getCanonicalPath(); antfilename = file.getCanonicalPath();
@@ -193,7 +278,9 @@ public class SubAnt
+ "' of: " + antfilename + "\n" + "' of: " + antfilename + "\n"
+ e.toString(), + e.toString(),
Project.MSG_WARN); Project.MSG_WARN);
}
} finally {
ant = null;
}
} }


/** /**


+ 1
- 1
src/main/org/apache/tools/ant/util/XMLFragment.java View File

@@ -87,7 +87,7 @@ public class XMLFragment implements DynamicConfiguratorNS {
} }
} }


public class Child implements DynamicConfiguratorNS {
public class Child implements DynamicConfiguratorNS {
private Element e; private Element e;


Child(Element e) { Child(Element e) {


Loading…
Cancel
Save