conor 2003/01/30 23:57:42 Modified: src/main/org/apache/tools/ant DemuxOutputStream.java Project.java Task.java UnknownElement.java src/main/org/apache/tools/ant/taskdefs Ant.java CallTarget.java Java.java src/main/org/apache/tools/ant/taskdefs/optional/junit JUnitTask.java JUnitTestRunner.java Log: Much better solution to unterminated output - better backward compat Revision Changes Path 1.12 +6 -5 jakarta-ant/src/main/org/apache/tools/ant/DemuxOutputStream.java Index: DemuxOutputStream.java =================================================================== RCS file: /home/cvs/jakarta-ant/src/main/org/apache/tools/ant/DemuxOutputStream.java,v retrieving revision 1.11 retrieving revision 1.12 diff -u -w -u -r1.11 -r1.12 --- DemuxOutputStream.java 30 Jan 2003 15:12:52 -0000 1.11 +++ DemuxOutputStream.java 31 Jan 2003 07:57:41 -0000 1.12 @@ -191,7 +191,9 @@ * @see Project#demuxOutput(String,boolean) */ protected void processBuffer(ByteArrayOutputStream buffer) { - processBuffer(buffer, true); + String output = buffer.toString(); + project.demuxOutput(output, isErrorStream); + resetBufferInfo(); } /** @@ -202,10 +204,9 @@ * * @see Project#demuxOutput(String,boolean) */ - protected void processBuffer(ByteArrayOutputStream buffer, - boolean terminated) { + protected void processFlush(ByteArrayOutputStream buffer) { String output = buffer.toString(); - project.demuxOutput(output, isErrorStream, terminated); + project.demuxFlush(output, isErrorStream); resetBufferInfo(); } @@ -230,7 +231,7 @@ public void flush() throws IOException { BufferInfo bufferInfo = getBufferInfo(); if (bufferInfo.buffer.size() > 0) { - processBuffer(bufferInfo.buffer, false); + processFlush(bufferInfo.buffer); } } } 1.127 +17 -6 jakarta-ant/src/main/org/apache/tools/ant/Project.java Index: Project.java =================================================================== RCS file: /home/cvs/jakarta-ant/src/main/org/apache/tools/ant/Project.java,v retrieving revision 1.126 retrieving revision 1.127 diff -u -w -u -r1.126 -r1.127 --- Project.java 30 Jan 2003 15:12:52 -0000 1.126 +++ Project.java 31 Jan 2003 07:57:41 -0000 1.127 @@ -1228,29 +1228,40 @@ * or information (<code>false</code>). */ public void demuxOutput(String line, boolean isError) { - demuxOutput(line, isError, true); + Task task = (Task) threadTasks.get(Thread.currentThread()); + if (task == null) { + fireMessageLogged(this, line, isError ? MSG_ERR : MSG_INFO); + } else { + if (isError) { + task.handleErrorOutput(line); + } else { + task.handleOutput(line); + } + } } /** - * Demultiplexes output so that each task receives the appropriate + * Demultiplexes flush operation so that each task receives the appropriate * messages. If the current thread is not currently executing a task, * the message is logged directly. * + * @since Ant 1.5.2 + * * @param line Message to handle. Should not be <code>null</code>. * @param isError Whether the text represents an error (<code>true</code>) * or information (<code>false</code>). * @param terminated true if this line should be terminated with an * end-of-line marker */ - public void demuxOutput(String line, boolean isError, boolean terminated) { + public void demuxFlush(String line, boolean isError) { Task task = (Task) threadTasks.get(Thread.currentThread()); if (task == null) { fireMessageLogged(this, line, isError ? MSG_ERR : MSG_INFO); } else { if (isError) { - task.handleErrorOutput(line, terminated); + task.handleErrorFlush(line); } else { - task.handleOutput(line, terminated); + task.handleFlush(line); } } } 1.38 +10 -10 jakarta-ant/src/main/org/apache/tools/ant/Task.java Index: Task.java =================================================================== RCS file: /home/cvs/jakarta-ant/src/main/org/apache/tools/ant/Task.java,v retrieving revision 1.37 retrieving revision 1.38 diff -u -w -u -r1.37 -r1.38 --- Task.java 30 Jan 2003 15:12:52 -0000 1.37 +++ Task.java 31 Jan 2003 07:57:41 -0000 1.38 @@ -298,18 +298,18 @@ * @param line The line of output to log. Should not be <code>null</code>. */ protected void handleOutput(String line) { - handleOutput(line + "X7", true); + log(line, Project.MSG_INFO); } /** * Handles a line of output by logging it with the INFO priority. * * @param line The line of output to log. Should not be <code>null</code>. - * @param terminated true if this line should be terminated with an - * end-of-line marker + * + * @since Ant 1.5.2 */ - protected void handleOutput(String line, boolean terminated) { - log(line, Project.MSG_INFO); + protected void handleFlush(String line) { + handleOutput(line); } /** @@ -318,18 +318,18 @@ * @param line The error line to log. Should not be <code>null</code>. */ protected void handleErrorOutput(String line) { - handleErrorOutput(line, true); + log(line, Project.MSG_ERR); } /** * Handles an error line by logging it with the INFO priority. * * @param line The error line to log. Should not be <code>null</code>. - * @param terminated true if this line should be terminated with an - * end-of-line marker + * + * @since Ant 1.5.2 */ - protected void handleErrorOutput(String line, boolean terminated) { - log(line, Project.MSG_ERR); + protected void handleErrorFlush(String line) { + handleErrorOutput(line); } /** 1.36 +6 -6 jakarta-ant/src/main/org/apache/tools/ant/UnknownElement.java Index: UnknownElement.java =================================================================== RCS file: /home/cvs/jakarta-ant/src/main/org/apache/tools/ant/UnknownElement.java,v retrieving revision 1.35 retrieving revision 1.36 diff -u -w -u -r1.35 -r1.36 --- UnknownElement.java 30 Jan 2003 15:12:52 -0000 1.35 +++ UnknownElement.java 31 Jan 2003 07:57:41 -0000 1.36 @@ -161,11 +161,11 @@ * * @param line The line of output to log. Should not be <code>null</code>. */ - protected void handleOutput(String line, boolean terminated) { + protected void handleFlush(String line) { if (realThing instanceof Task) { - ((Task) realThing).handleOutput(line, terminated); + ((Task) realThing).handleFlush(line); } else { - super.handleOutput(line, terminated); + super.handleFlush(line); } } @@ -188,11 +188,11 @@ * * @param line The error line to log. Should not be <code>null</code>. */ - protected void handleErrorOutput(String line, boolean terminated) { + protected void handleErrorFlush(String line) { if (realThing instanceof Task) { - ((Task) realThing).handleErrorOutput(line, terminated); + ((Task) realThing).handleErrorOutput(line); } else { - super.handleErrorOutput(line, terminated); + super.handleErrorOutput(line); } } 1.72 +10 -10 jakarta-ant/src/main/org/apache/tools/ant/taskdefs/Ant.java Index: Ant.java =================================================================== RCS file: /home/cvs/jakarta-ant/src/main/org/apache/tools/ant/taskdefs/Ant.java,v retrieving revision 1.71 retrieving revision 1.72 diff -u -w -u -r1.71 -r1.72 --- Ant.java 30 Jan 2003 15:12:52 -0000 1.71 +++ Ant.java 31 Jan 2003 07:57:41 -0000 1.72 @@ -288,7 +288,7 @@ * * @since Ant 1.5 */ - protected void handleOutput(String line) { + public void handleOutput(String line) { if (newProject != null) { newProject.demuxOutput(line, false); } else { @@ -299,13 +299,13 @@ /** * Pass output sent to System.out to the new project. * - * @since Ant 1.6 + * @since Ant 1.5.2 */ - protected void handleOutput(String line, boolean terminated) { + public void handleFlush(String line) { if (newProject != null) { - newProject.demuxOutput(line, false, terminated); + newProject.demuxFlush(line, false); } else { - super.handleOutput(line, terminated); + super.handleFlush(line); } } @@ -314,7 +314,7 @@ * * @since Ant 1.5 */ - protected void handleErrorOutput(String line) { + public void handleErrorOutput(String line) { if (newProject != null) { newProject.demuxOutput(line, true); } else { @@ -325,13 +325,13 @@ /** * Pass output sent to System.err to the new project. * - * @since Ant 1.6 + * @since Ant 1.5.2 */ - protected void handleErrorOutput(String line, boolean terminated) { + public void handleErrorFlush(String line) { if (newProject != null) { - newProject.demuxOutput(line, true, terminated); + newProject.demuxFlush(line, true); } else { - super.handleErrorOutput(line, terminated); + super.handleErrorFlush(line); } } 1.28 +8 -8 jakarta-ant/src/main/org/apache/tools/ant/taskdefs/CallTarget.java Index: CallTarget.java =================================================================== RCS file: /home/cvs/jakarta-ant/src/main/org/apache/tools/ant/taskdefs/CallTarget.java,v retrieving revision 1.27 retrieving revision 1.28 diff -u -w -u -r1.27 -r1.28 --- CallTarget.java 31 Jan 2003 06:49:44 -0000 1.27 +++ CallTarget.java 31 Jan 2003 07:57:41 -0000 1.28 @@ -188,13 +188,13 @@ /** * Pass output sent to System.out to the new project. * - * @since Ant 1.6 + * @since Ant 1.5.2 */ - protected void handleOutput(String line, boolean terminated) { + public void handleFlush(String line) { if (callee != null) { - callee.handleOutput(line, terminated); + callee.handleFlush(line); } else { - super.handleOutput(line, terminated); + super.handleFlush(line); } } @@ -214,13 +214,13 @@ /** * Pass output sent to System.err to the new project. * - * @since Ant 1.6 + * @since Ant 1.5.2 */ - protected void handleErrorOutput(String line, boolean terminated) { + public void handleErrorFlush(String line) { if (callee != null) { - callee.handleErrorOutput(line, terminated); + callee.handleErrorFlush(line); } else { - super.handleErrorOutput(line, terminated); + super.handleErrorFlush(line); } } } 1.52 +8 -16 jakarta-ant/src/main/org/apache/tools/ant/taskdefs/Java.java Index: Java.java =================================================================== RCS file: /home/cvs/jakarta-ant/src/main/org/apache/tools/ant/taskdefs/Java.java,v retrieving revision 1.51 retrieving revision 1.52 diff -u -w -u -r1.51 -r1.52 --- Java.java 30 Jan 2003 15:12:52 -0000 1.51 +++ Java.java 31 Jan 2003 07:57:41 -0000 1.52 @@ -376,17 +376,13 @@ /** * Pass output sent to System.out to specified output file. * - * @since Ant 1.6 + * @since Ant 1.5.2 */ - protected void handleOutput(String line, boolean terminated) { + protected void handleFlush(String line) { if (outStream != null) { - if (terminated) { - outStream.println(line); - } else { outStream.print(line); - } } else { - super.handleOutput(line, terminated); + super.handleFlush(line); } } @@ -406,17 +402,13 @@ /** * Pass output sent to System.err to specified output file. * - * @since Ant 1.6 + * @since Ant 1.5.2 */ - protected void handleErrorOutput(String line, boolean terminated) { + protected void handleErrorFlush(String line) { if (outStream != null) { - if (terminated) { outStream.println(line); } else { - outStream.print(line); - } - } else { - super.handleErrorOutput(line, terminated); + super.handleErrorOutput(line); } } 1.55 +12 -12 jakarta-ant/src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitTask.java Index: JUnitTask.java =================================================================== RCS file: /home/cvs/jakarta-ant/src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitTask.java,v retrieving revision 1.54 retrieving revision 1.55 diff -u -w -u -r1.54 -r1.55 --- JUnitTask.java 30 Jan 2003 15:12:53 -0000 1.54 +++ JUnitTask.java 31 Jan 2003 07:57:41 -0000 1.55 @@ -717,16 +717,16 @@ * Pass output sent to System.out to the TestRunner so it can * collect ot for the formatters. * - * @since Ant 1.6 + * @since Ant 1.5.2 */ - protected void handleOutput(String line, boolean terminated) { + protected void handleFlush(String line) { if (runner != null) { - runner.handleOutput(line, terminated); + runner.handleFlush(line); if (showOutput) { - super.handleOutput(line, terminated); + super.handleFlush(line); } } else { - super.handleOutput(line, terminated); + super.handleFlush(line); } } @@ -736,7 +736,7 @@ * * @since Ant 1.5 */ - protected void handleErrorOutput(String line) { + public void handleErrorOutput(String line) { if (runner != null) { runner.handleErrorOutput(line); if (showOutput) { @@ -752,16 +752,16 @@ * Pass output sent to System.err to the TestRunner so it can * collect ot for the formatters. * - * @since Ant 1.6 + * @since Ant 1.5.2 */ - protected void handleErrorOutput(String line, boolean terminated) { + public void handleErrorFlush(String line) { if (runner != null) { - runner.handleErrorOutput(line, terminated); + runner.handleErrorFlush(line); if (showOutput) { - super.handleErrorOutput(line, terminated); + super.handleErrorFlush(line); } } else { - super.handleErrorOutput(line, terminated); + super.handleErrorFlush(line); } } 1.29 +4 -12 jakarta-ant/src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitTestRunner.java Index: JUnitTestRunner.java =================================================================== RCS file: /home/cvs/jakarta-ant/src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitTestRunner.java,v retrieving revision 1.28 retrieving revision 1.29 diff -u -w -u -r1.28 -r1.29 --- JUnitTestRunner.java 30 Jan 2003 15:12:53 -0000 1.28 +++ JUnitTestRunner.java 31 Jan 2003 07:57:42 -0000 1.29 @@ -416,23 +416,15 @@ } } - protected void handleOutput(String line, boolean terminated) { + protected void handleFlush(String line) { if (systemOut != null) { - if (terminated) { - systemOut.println(line); - } else { systemOut.print(line); } } - } - protected void handleErrorOutput(String line, boolean terminated) { + protected void handleErrorFlush(String line) { if (systemError != null) { - if (terminated) { - systemError.println(line); - } else { systemError.print(line); - } } }
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]