git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@271262 13f79535-47bb-0310-9956-ffa450edef68master
@@ -10,12 +10,10 @@ package org.apache.tools.ant.taskdefs.exec; | |||||
import java.io.File; | import java.io.File; | ||||
import java.io.IOException; | import java.io.IOException; | ||||
import java.util.Properties; | import java.util.Properties; | ||||
import org.apache.aut.nativelib.DefaultExecOutputHandler; | |||||
import org.apache.aut.nativelib.ExecException; | import org.apache.aut.nativelib.ExecException; | ||||
import org.apache.aut.nativelib.ExecManager; | import org.apache.aut.nativelib.ExecManager; | ||||
import org.apache.aut.nativelib.ExecMetaData; | import org.apache.aut.nativelib.ExecMetaData; | ||||
import org.apache.aut.nativelib.ExecOutputHandler; | import org.apache.aut.nativelib.ExecOutputHandler; | ||||
import org.apache.avalon.framework.logger.AbstractLogEnabled; | |||||
import org.apache.myrmidon.api.TaskException; | import org.apache.myrmidon.api.TaskException; | ||||
import org.apache.tools.ant.types.Commandline; | import org.apache.tools.ant.types.Commandline; | ||||
@@ -25,7 +23,6 @@ import org.apache.tools.ant.types.Commandline; | |||||
* @author thomas.haas@softwired-inc.com | * @author thomas.haas@softwired-inc.com | ||||
*/ | */ | ||||
public class Execute2 | public class Execute2 | ||||
extends AbstractLogEnabled | |||||
{ | { | ||||
private Commandline m_command; | private Commandline m_command; | ||||
private Properties m_environment = new Properties(); | private Properties m_environment = new Properties(); | ||||
@@ -53,13 +50,22 @@ public class Execute2 | |||||
/** | /** | ||||
* Sets the commandline of the subprocess to launch. | * Sets the commandline of the subprocess to launch. | ||||
* | * | ||||
* @param commandline the commandline of the subprocess to launch | |||||
* @param command the commandline of the subprocess to launch | |||||
*/ | */ | ||||
public void setCommandline( final Commandline command ) | public void setCommandline( final Commandline command ) | ||||
{ | { | ||||
m_command = command; | m_command = command; | ||||
} | } | ||||
public Commandline getCommandline() | |||||
{ | |||||
if( null == m_command ) | |||||
{ | |||||
m_command = new Commandline(); | |||||
} | |||||
return m_command; | |||||
} | |||||
public void setEnvironment( final Properties environment ) | public void setEnvironment( final Properties environment ) | ||||
{ | { | ||||
if( null == environment ) | if( null == environment ) | ||||
@@ -72,7 +78,7 @@ public class Execute2 | |||||
/** | /** | ||||
* Set whether to propagate the default environment or not. | * Set whether to propagate the default environment or not. | ||||
* | * | ||||
* @param newenv whether to propagate the process environment. | |||||
* @param newEnvironment whether to propagate the process environment. | |||||
*/ | */ | ||||
public void setNewenvironment( boolean newEnvironment ) | public void setNewenvironment( boolean newEnvironment ) | ||||
{ | { | ||||
@@ -93,30 +99,40 @@ public class Execute2 | |||||
* Runs a process defined by the command line and returns its exit status. | * Runs a process defined by the command line and returns its exit status. | ||||
* | * | ||||
* @return the exit status of the subprocess or <code>INVALID</code> | * @return the exit status of the subprocess or <code>INVALID</code> | ||||
* @exception IOException Description of Exception | |||||
*/ | */ | ||||
public int execute() | public int execute() | ||||
throws IOException, TaskException | throws IOException, TaskException | ||||
{ | { | ||||
if( null == m_handler ) | |||||
{ | |||||
m_handler = new DefaultExecOutputHandler(); | |||||
setupLogger( m_handler ); | |||||
} | |||||
try | try | ||||
{ | { | ||||
final String[] command = m_command.getCommandline(); | |||||
final ExecMetaData metaData = | |||||
new ExecMetaData( command, m_environment, | |||||
m_workingDirectory, m_newEnvironment ); | |||||
final ExecMetaData metaData = buildExecMetaData(); | |||||
return m_execManager.execute( metaData, m_handler, m_timeout ); | |||||
if( null != m_handler ) | |||||
{ | |||||
return m_execManager.execute( metaData, m_handler, m_timeout ); | |||||
} | |||||
else | |||||
{ | |||||
return m_execManager.execute( metaData, | |||||
null, | |||||
System.out, | |||||
System.err, | |||||
m_timeout ); | |||||
} | |||||
} | } | ||||
catch( final ExecException ee ) | catch( final ExecException ee ) | ||||
{ | { | ||||
throw new TaskException( ee.getMessage(), ee ); | throw new TaskException( ee.getMessage(), ee ); | ||||
} | } | ||||
} | } | ||||
private ExecMetaData buildExecMetaData() | |||||
{ | |||||
final String[] command = m_command.getCommandline(); | |||||
final ExecMetaData metaData = | |||||
new ExecMetaData( command, m_environment, | |||||
m_workingDirectory, m_newEnvironment ); | |||||
return metaData; | |||||
} | |||||
} | } |
@@ -10,12 +10,10 @@ package org.apache.tools.ant.taskdefs.exec; | |||||
import java.io.File; | import java.io.File; | ||||
import java.io.IOException; | import java.io.IOException; | ||||
import java.util.Properties; | import java.util.Properties; | ||||
import org.apache.aut.nativelib.DefaultExecOutputHandler; | |||||
import org.apache.aut.nativelib.ExecException; | import org.apache.aut.nativelib.ExecException; | ||||
import org.apache.aut.nativelib.ExecManager; | import org.apache.aut.nativelib.ExecManager; | ||||
import org.apache.aut.nativelib.ExecMetaData; | import org.apache.aut.nativelib.ExecMetaData; | ||||
import org.apache.aut.nativelib.ExecOutputHandler; | import org.apache.aut.nativelib.ExecOutputHandler; | ||||
import org.apache.avalon.framework.logger.AbstractLogEnabled; | |||||
import org.apache.myrmidon.api.TaskException; | import org.apache.myrmidon.api.TaskException; | ||||
import org.apache.tools.ant.types.Commandline; | import org.apache.tools.ant.types.Commandline; | ||||
@@ -25,7 +23,6 @@ import org.apache.tools.ant.types.Commandline; | |||||
* @author thomas.haas@softwired-inc.com | * @author thomas.haas@softwired-inc.com | ||||
*/ | */ | ||||
public class Execute2 | public class Execute2 | ||||
extends AbstractLogEnabled | |||||
{ | { | ||||
private Commandline m_command; | private Commandline m_command; | ||||
private Properties m_environment = new Properties(); | private Properties m_environment = new Properties(); | ||||
@@ -53,13 +50,22 @@ public class Execute2 | |||||
/** | /** | ||||
* Sets the commandline of the subprocess to launch. | * Sets the commandline of the subprocess to launch. | ||||
* | * | ||||
* @param commandline the commandline of the subprocess to launch | |||||
* @param command the commandline of the subprocess to launch | |||||
*/ | */ | ||||
public void setCommandline( final Commandline command ) | public void setCommandline( final Commandline command ) | ||||
{ | { | ||||
m_command = command; | m_command = command; | ||||
} | } | ||||
public Commandline getCommandline() | |||||
{ | |||||
if( null == m_command ) | |||||
{ | |||||
m_command = new Commandline(); | |||||
} | |||||
return m_command; | |||||
} | |||||
public void setEnvironment( final Properties environment ) | public void setEnvironment( final Properties environment ) | ||||
{ | { | ||||
if( null == environment ) | if( null == environment ) | ||||
@@ -72,7 +78,7 @@ public class Execute2 | |||||
/** | /** | ||||
* Set whether to propagate the default environment or not. | * Set whether to propagate the default environment or not. | ||||
* | * | ||||
* @param newenv whether to propagate the process environment. | |||||
* @param newEnvironment whether to propagate the process environment. | |||||
*/ | */ | ||||
public void setNewenvironment( boolean newEnvironment ) | public void setNewenvironment( boolean newEnvironment ) | ||||
{ | { | ||||
@@ -93,30 +99,40 @@ public class Execute2 | |||||
* Runs a process defined by the command line and returns its exit status. | * Runs a process defined by the command line and returns its exit status. | ||||
* | * | ||||
* @return the exit status of the subprocess or <code>INVALID</code> | * @return the exit status of the subprocess or <code>INVALID</code> | ||||
* @exception IOException Description of Exception | |||||
*/ | */ | ||||
public int execute() | public int execute() | ||||
throws IOException, TaskException | throws IOException, TaskException | ||||
{ | { | ||||
if( null == m_handler ) | |||||
{ | |||||
m_handler = new DefaultExecOutputHandler(); | |||||
setupLogger( m_handler ); | |||||
} | |||||
try | try | ||||
{ | { | ||||
final String[] command = m_command.getCommandline(); | |||||
final ExecMetaData metaData = | |||||
new ExecMetaData( command, m_environment, | |||||
m_workingDirectory, m_newEnvironment ); | |||||
final ExecMetaData metaData = buildExecMetaData(); | |||||
return m_execManager.execute( metaData, m_handler, m_timeout ); | |||||
if( null != m_handler ) | |||||
{ | |||||
return m_execManager.execute( metaData, m_handler, m_timeout ); | |||||
} | |||||
else | |||||
{ | |||||
return m_execManager.execute( metaData, | |||||
null, | |||||
System.out, | |||||
System.err, | |||||
m_timeout ); | |||||
} | |||||
} | } | ||||
catch( final ExecException ee ) | catch( final ExecException ee ) | ||||
{ | { | ||||
throw new TaskException( ee.getMessage(), ee ); | throw new TaskException( ee.getMessage(), ee ); | ||||
} | } | ||||
} | } | ||||
private ExecMetaData buildExecMetaData() | |||||
{ | |||||
final String[] command = m_command.getCommandline(); | |||||
final ExecMetaData metaData = | |||||
new ExecMetaData( command, m_environment, | |||||
m_workingDirectory, m_newEnvironment ); | |||||
return metaData; | |||||
} | |||||
} | } |