Browse Source

Added the ExecOutputHandler abstraction so that tasks don't have to worry about more complicated stream parsing and can work with just notification of lines appearing.

Also added a default implementation that conforms to the most common pattern of making stdout info log messages and stderr warn log messages


git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@270550 13f79535-47bb-0310-9956-ffa450edef68
master
Peter Donald 24 years ago
parent
commit
ff7c11c744
2 changed files with 70 additions and 0 deletions
  1. +40
    -0
      proposal/myrmidon/src/java/org/apache/myrmidon/framework/exec/DefaultExecOutputHandler.java
  2. +30
    -0
      proposal/myrmidon/src/java/org/apache/myrmidon/framework/exec/ExecOutputHandler.java

+ 40
- 0
proposal/myrmidon/src/java/org/apache/myrmidon/framework/exec/DefaultExecOutputHandler.java View File

@@ -0,0 +1,40 @@
/*
* Copyright (C) The Apache Software Foundation. All rights reserved.
*
* This software is published under the terms of the Apache Software License
* version 1.1, a copy of which has been included with this distribution in
* the LICENSE.txt file.
*/
package org.apache.myrmidon.framework.exec;

import org.apache.avalon.framework.logger.AbstractLogEnabled;

/**
* This class is used to receive notifications of what the native
* process outputs to standard output and standard error.
*
* @author <a href="mailto:peter@apache.org">Peter Donald</a>
* @version $Revision$ $Date$
*/
public class DefaultExecOutputHandler
extends AbstractLogEnabled
implements ExecOutputHandler
{
/**
* Receive notification about the process writing
* to standard output.
*/
public void stdout( final String line )
{
getLogger().info( line );
}

/**
* Receive notification about the process writing
* to standard error.
*/
public void stderr( final String line )
{
getLogger().warn( line );
}
}

+ 30
- 0
proposal/myrmidon/src/java/org/apache/myrmidon/framework/exec/ExecOutputHandler.java View File

@@ -0,0 +1,30 @@
/*
* Copyright (C) The Apache Software Foundation. All rights reserved.
*
* This software is published under the terms of the Apache Software License
* version 1.1, a copy of which has been included with this distribution in
* the LICENSE.txt file.
*/
package org.apache.myrmidon.framework.exec;

/**
* This class is used to receive notifications of what the native
* process outputs to standard output and standard error.
*
* @author <a href="mailto:peter@apache.org">Peter Donald</a>
* @version $Revision$ $Date$
*/
public interface ExecOutputHandler
{
/**
* Receive notification about the process writing
* to standard output.
*/
void stdout( String line );

/**
* Receive notification about the process writing
* to standard error.
*/
void stderr( String line );
}

Loading…
Cancel
Save