diff --git a/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/exec/Execute2.java b/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/exec/Execute2.java
index c35b9237c..c4ef722dd 100644
--- a/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/exec/Execute2.java
+++ b/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/exec/Execute2.java
@@ -10,12 +10,10 @@ package org.apache.tools.ant.taskdefs.exec;
import java.io.File;
import java.io.IOException;
import java.util.Properties;
-import org.apache.aut.nativelib.DefaultExecOutputHandler;
import org.apache.aut.nativelib.ExecException;
import org.apache.aut.nativelib.ExecManager;
import org.apache.aut.nativelib.ExecMetaData;
import org.apache.aut.nativelib.ExecOutputHandler;
-import org.apache.avalon.framework.logger.AbstractLogEnabled;
import org.apache.myrmidon.api.TaskException;
import org.apache.tools.ant.types.Commandline;
@@ -25,7 +23,6 @@ import org.apache.tools.ant.types.Commandline;
* @author thomas.haas@softwired-inc.com
*/
public class Execute2
- extends AbstractLogEnabled
{
private Commandline m_command;
private Properties m_environment = new Properties();
@@ -53,13 +50,22 @@ public class Execute2
/**
* 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 )
{
m_command = command;
}
+ public Commandline getCommandline()
+ {
+ if( null == m_command )
+ {
+ m_command = new Commandline();
+ }
+ return m_command;
+ }
+
public void setEnvironment( final Properties environment )
{
if( null == environment )
@@ -72,7 +78,7 @@ public class Execute2
/**
* 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 )
{
@@ -93,30 +99,40 @@ public class Execute2
* Runs a process defined by the command line and returns its exit status.
*
* @return the exit status of the subprocess or INVALID
- * @exception IOException Description of Exception
*/
public int execute()
throws IOException, TaskException
{
- if( null == m_handler )
- {
- m_handler = new DefaultExecOutputHandler();
- setupLogger( m_handler );
- }
-
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 )
{
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;
+ }
}
diff --git a/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/exec/Execute2.java b/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/exec/Execute2.java
index c35b9237c..c4ef722dd 100644
--- a/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/exec/Execute2.java
+++ b/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/exec/Execute2.java
@@ -10,12 +10,10 @@ package org.apache.tools.ant.taskdefs.exec;
import java.io.File;
import java.io.IOException;
import java.util.Properties;
-import org.apache.aut.nativelib.DefaultExecOutputHandler;
import org.apache.aut.nativelib.ExecException;
import org.apache.aut.nativelib.ExecManager;
import org.apache.aut.nativelib.ExecMetaData;
import org.apache.aut.nativelib.ExecOutputHandler;
-import org.apache.avalon.framework.logger.AbstractLogEnabled;
import org.apache.myrmidon.api.TaskException;
import org.apache.tools.ant.types.Commandline;
@@ -25,7 +23,6 @@ import org.apache.tools.ant.types.Commandline;
* @author thomas.haas@softwired-inc.com
*/
public class Execute2
- extends AbstractLogEnabled
{
private Commandline m_command;
private Properties m_environment = new Properties();
@@ -53,13 +50,22 @@ public class Execute2
/**
* 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 )
{
m_command = command;
}
+ public Commandline getCommandline()
+ {
+ if( null == m_command )
+ {
+ m_command = new Commandline();
+ }
+ return m_command;
+ }
+
public void setEnvironment( final Properties environment )
{
if( null == environment )
@@ -72,7 +78,7 @@ public class Execute2
/**
* 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 )
{
@@ -93,30 +99,40 @@ public class Execute2
* Runs a process defined by the command line and returns its exit status.
*
* @return the exit status of the subprocess or INVALID
- * @exception IOException Description of Exception
*/
public int execute()
throws IOException, TaskException
{
- if( null == m_handler )
- {
- m_handler = new DefaultExecOutputHandler();
- setupLogger( m_handler );
- }
-
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 )
{
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;
+ }
}