git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@270799 13f79535-47bb-0310-9956-ffa450edef68master
| @@ -19,11 +19,11 @@ import java.text.MessageFormat; | |||
| import java.text.ParseException; | |||
| import java.util.ArrayList; | |||
| import java.util.Iterator; | |||
| import org.apache.aut.nativelib.ExecOutputHandler; | |||
| import org.apache.avalon.excalibur.io.IOUtil; | |||
| import org.apache.myrmidon.api.AbstractTask; | |||
| import org.apache.myrmidon.api.TaskException; | |||
| import org.apache.tools.ant.taskdefs.exec.Execute; | |||
| import org.apache.tools.ant.taskdefs.exec.Execute2; | |||
| import org.apache.tools.ant.taskdefs.exec.LogOutputStream; | |||
| import org.apache.tools.ant.types.Commandline; | |||
| /** | |||
| @@ -44,6 +44,7 @@ import org.apache.tools.ant.types.Commandline; | |||
| */ | |||
| public class Pvcs | |||
| extends AbstractTask | |||
| implements ExecOutputHandler | |||
| { | |||
| /** | |||
| * Constant for the thing to execute | |||
| @@ -72,6 +73,7 @@ public class Pvcs | |||
| private String m_repository; | |||
| private boolean m_updateOnly; | |||
| private String m_workspace; | |||
| private FileOutputStream m_output; | |||
| /** | |||
| * Creates a Pvcs object | |||
| @@ -269,9 +271,10 @@ public class Pvcs | |||
| tmp = File.createTempFile( "pvcs_ant_", ".log" ); | |||
| final File fileList = File.createTempFile( "pvcs_ant_", ".log" ); | |||
| final Execute exe = new Execute(); | |||
| exe.setOutput( new FileOutputStream( tmp ) ); | |||
| exe.setError( new LogOutputStream( getLogger(), true ) ); | |||
| final Execute2 exe = new Execute2(); | |||
| setupLogger( exe ); | |||
| exe.setExecOutputHandler( this ); | |||
| m_output = new FileOutputStream( tmp ); | |||
| exe.setWorkingDirectory( getBaseDirectory() ); | |||
| exe.setCommandline( cmd.getCommandline() ); | |||
| final int result = exe.execute(); | |||
| @@ -306,6 +309,7 @@ public class Pvcs | |||
| } | |||
| finally | |||
| { | |||
| IOUtil.shutdownStream( m_output ); | |||
| if( null != tmp ) | |||
| { | |||
| tmp.delete(); | |||
| @@ -313,6 +317,32 @@ public class Pvcs | |||
| } | |||
| } | |||
| /** | |||
| * Receive notification about the process writing | |||
| * to standard output. | |||
| */ | |||
| public void stdout( final String line ) | |||
| { | |||
| try | |||
| { | |||
| m_output.write( line.getBytes() ); | |||
| } | |||
| catch( final IOException ioe ) | |||
| { | |||
| final String message = "Failed to write to output stream"; | |||
| getLogger().error( message ); | |||
| } | |||
| } | |||
| /** | |||
| * Receive notification about the process writing | |||
| * to standard error. | |||
| */ | |||
| public void stderr( final String line ) | |||
| { | |||
| getLogger().warn( line ); | |||
| } | |||
| private Commandline buildPCLICommand() | |||
| throws TaskException | |||
| { | |||
| @@ -19,11 +19,11 @@ import java.text.MessageFormat; | |||
| import java.text.ParseException; | |||
| import java.util.ArrayList; | |||
| import java.util.Iterator; | |||
| import org.apache.aut.nativelib.ExecOutputHandler; | |||
| import org.apache.avalon.excalibur.io.IOUtil; | |||
| import org.apache.myrmidon.api.AbstractTask; | |||
| import org.apache.myrmidon.api.TaskException; | |||
| import org.apache.tools.ant.taskdefs.exec.Execute; | |||
| import org.apache.tools.ant.taskdefs.exec.Execute2; | |||
| import org.apache.tools.ant.taskdefs.exec.LogOutputStream; | |||
| import org.apache.tools.ant.types.Commandline; | |||
| /** | |||
| @@ -44,6 +44,7 @@ import org.apache.tools.ant.types.Commandline; | |||
| */ | |||
| public class Pvcs | |||
| extends AbstractTask | |||
| implements ExecOutputHandler | |||
| { | |||
| /** | |||
| * Constant for the thing to execute | |||
| @@ -72,6 +73,7 @@ public class Pvcs | |||
| private String m_repository; | |||
| private boolean m_updateOnly; | |||
| private String m_workspace; | |||
| private FileOutputStream m_output; | |||
| /** | |||
| * Creates a Pvcs object | |||
| @@ -269,9 +271,10 @@ public class Pvcs | |||
| tmp = File.createTempFile( "pvcs_ant_", ".log" ); | |||
| final File fileList = File.createTempFile( "pvcs_ant_", ".log" ); | |||
| final Execute exe = new Execute(); | |||
| exe.setOutput( new FileOutputStream( tmp ) ); | |||
| exe.setError( new LogOutputStream( getLogger(), true ) ); | |||
| final Execute2 exe = new Execute2(); | |||
| setupLogger( exe ); | |||
| exe.setExecOutputHandler( this ); | |||
| m_output = new FileOutputStream( tmp ); | |||
| exe.setWorkingDirectory( getBaseDirectory() ); | |||
| exe.setCommandline( cmd.getCommandline() ); | |||
| final int result = exe.execute(); | |||
| @@ -306,6 +309,7 @@ public class Pvcs | |||
| } | |||
| finally | |||
| { | |||
| IOUtil.shutdownStream( m_output ); | |||
| if( null != tmp ) | |||
| { | |||
| tmp.delete(); | |||
| @@ -313,6 +317,32 @@ public class Pvcs | |||
| } | |||
| } | |||
| /** | |||
| * Receive notification about the process writing | |||
| * to standard output. | |||
| */ | |||
| public void stdout( final String line ) | |||
| { | |||
| try | |||
| { | |||
| m_output.write( line.getBytes() ); | |||
| } | |||
| catch( final IOException ioe ) | |||
| { | |||
| final String message = "Failed to write to output stream"; | |||
| getLogger().error( message ); | |||
| } | |||
| } | |||
| /** | |||
| * Receive notification about the process writing | |||
| * to standard error. | |||
| */ | |||
| public void stderr( final String line ) | |||
| { | |||
| getLogger().warn( line ); | |||
| } | |||
| private Commandline buildPCLICommand() | |||
| throws TaskException | |||
| { | |||