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
Charlie Hubbard
Chris Povirk
Christian Knorr
Christoph Wilhelms
Christophe Labouisse
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.

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

Other changes:
--------------
* 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 Ant ant = null;
private String target = null;
private String antfile = "build.xml";
private File genericantfile = null;
@@ -72,6 +73,90 @@ public class SubAnt
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 @@ public class SubAnt
return;
}

Ant ant = createAntTask(directory);
ant = createAntTask(directory);
String antfilename = null;
try {
antfilename = file.getCanonicalPath();
@@ -193,7 +278,9 @@ public class SubAnt
+ "' of: " + antfilename + "\n"
+ e.toString(),
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;

Child(Element e) {


Loading…
Cancel
Save