Browse Source

Ugly hack to retrieve ExecManagerService by directly instantiating factory. This should really be done by the container in the future but is done here now to test out some ideas

git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@270870 13f79535-47bb-0310-9956-ffa450edef68
master
Peter Donald 23 years ago
parent
commit
71eaa47717
4 changed files with 56 additions and 102 deletions
  1. +16
    -32
      proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/exec/Execute.java
  2. +12
    -19
      proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/exec/Execute2.java
  3. +16
    -32
      proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/exec/Execute.java
  4. +12
    -19
      proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/exec/Execute2.java

+ 16
- 32
proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/exec/Execute.java View File

@@ -11,10 +11,13 @@ import java.io.File;
import java.io.IOException;
import java.io.OutputStream;
import java.util.Properties;
import org.apache.myrmidon.api.TaskException;
import org.apache.aut.nativelib.ExecException;
import org.apache.aut.nativelib.ExecManager;
import org.apache.aut.nativelib.ExecMetaData;
import org.apache.aut.nativelib.impl.DefaultExecManager;
import org.apache.avalon.excalibur.io.IOUtil;
import org.apache.myrmidon.api.TaskException;
import org.apache.myrmidon.framework.factorys.ExecManagerFactory;
import org.apache.myrmidon.services.ServiceException;

/**
* Runs an external program.
@@ -36,34 +39,6 @@ public class Execute
*/
private boolean m_useVMLauncher = true;

private static File getAntHomeDirectory()
{
final String antHome = System.getProperty( "myrmidon.home" );
if( null == antHome )
{
final String message =
"Cannot locate antRun script: Property 'ant.home' not specified";
throw new IllegalStateException( message );
}

return new File( antHome );
}

/**
* Creates a new execute object.
*
* @param streamHandler the stream handler used to handle the input and
* output streams of the subprocess.
*/
public Execute( final ExecuteStreamHandler streamHandler )
{
//m_streamHandler = streamHandler;
}

public Execute()
{
}

public void setTimeout( final long timeout )
{
m_timeout = timeout;
@@ -142,8 +117,8 @@ public class Execute
{
try
{
final DefaultExecManager manager =
new DefaultExecManager( getAntHomeDirectory() );
final ExecManagerFactory factory = new ExecManagerFactory();
final ExecManager manager = (ExecManager)factory.createService();

final ExecMetaData metaData =
new ExecMetaData( m_command, m_environment,
@@ -154,5 +129,14 @@ public class Execute
{
throw new TaskException( ee.getMessage(), ee );
}
catch( final ServiceException se )
{
throw new TaskException( se.getMessage(), se );
}
finally
{
IOUtil.shutdownStream( m_output );
IOUtil.shutdownStream( m_error );
}
}
}

+ 12
- 19
proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/exec/Execute2.java View File

@@ -10,13 +10,15 @@ package org.apache.tools.ant.taskdefs.exec;
import java.io.File;
import java.io.IOException;
import java.util.Properties;
import org.apache.avalon.framework.logger.AbstractLogEnabled;
import org.apache.myrmidon.api.TaskException;
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.aut.nativelib.impl.DefaultExecManager;
import org.apache.avalon.framework.logger.AbstractLogEnabled;
import org.apache.myrmidon.api.TaskException;
import org.apache.myrmidon.framework.factorys.ExecManagerFactory;
import org.apache.myrmidon.services.ServiceException;

/**
* Runs an external program.
@@ -38,19 +40,6 @@ public class Execute2
*/
private boolean m_useVMLauncher = true;

private static File getAntHomeDirectory()
{
final String antHome = System.getProperty( "myrmidon.home" );
if( null == antHome )
{
final String message =
"Cannot locate antRun script: Property 'ant.home' not specified";
throw new IllegalStateException( message );
}

return new File( antHome );
}

public void setTimeout( final long timeout )
{
m_timeout = timeout;
@@ -66,7 +55,7 @@ public class Execute2
*
* @param commandline the commandline of the subprocess to launch
*/
public void setCommandline( String[] commandline )
public void setCommandline( final String[] commandline )
{
m_command = commandline;
}
@@ -117,8 +106,8 @@ public class Execute2

try
{
final DefaultExecManager manager =
new DefaultExecManager( getAntHomeDirectory() );
final ExecManagerFactory factory = new ExecManagerFactory();
final ExecManager manager = (ExecManager)factory.createService();

final ExecMetaData metaData =
new ExecMetaData( m_command, m_environment,
@@ -130,5 +119,9 @@ public class Execute2
{
throw new TaskException( ee.getMessage(), ee );
}
catch( final ServiceException se )
{
throw new TaskException( se.getMessage(), se );
}
}
}

+ 16
- 32
proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/exec/Execute.java View File

@@ -11,10 +11,13 @@ import java.io.File;
import java.io.IOException;
import java.io.OutputStream;
import java.util.Properties;
import org.apache.myrmidon.api.TaskException;
import org.apache.aut.nativelib.ExecException;
import org.apache.aut.nativelib.ExecManager;
import org.apache.aut.nativelib.ExecMetaData;
import org.apache.aut.nativelib.impl.DefaultExecManager;
import org.apache.avalon.excalibur.io.IOUtil;
import org.apache.myrmidon.api.TaskException;
import org.apache.myrmidon.framework.factorys.ExecManagerFactory;
import org.apache.myrmidon.services.ServiceException;

/**
* Runs an external program.
@@ -36,34 +39,6 @@ public class Execute
*/
private boolean m_useVMLauncher = true;

private static File getAntHomeDirectory()
{
final String antHome = System.getProperty( "myrmidon.home" );
if( null == antHome )
{
final String message =
"Cannot locate antRun script: Property 'ant.home' not specified";
throw new IllegalStateException( message );
}

return new File( antHome );
}

/**
* Creates a new execute object.
*
* @param streamHandler the stream handler used to handle the input and
* output streams of the subprocess.
*/
public Execute( final ExecuteStreamHandler streamHandler )
{
//m_streamHandler = streamHandler;
}

public Execute()
{
}

public void setTimeout( final long timeout )
{
m_timeout = timeout;
@@ -142,8 +117,8 @@ public class Execute
{
try
{
final DefaultExecManager manager =
new DefaultExecManager( getAntHomeDirectory() );
final ExecManagerFactory factory = new ExecManagerFactory();
final ExecManager manager = (ExecManager)factory.createService();

final ExecMetaData metaData =
new ExecMetaData( m_command, m_environment,
@@ -154,5 +129,14 @@ public class Execute
{
throw new TaskException( ee.getMessage(), ee );
}
catch( final ServiceException se )
{
throw new TaskException( se.getMessage(), se );
}
finally
{
IOUtil.shutdownStream( m_output );
IOUtil.shutdownStream( m_error );
}
}
}

+ 12
- 19
proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/exec/Execute2.java View File

@@ -10,13 +10,15 @@ package org.apache.tools.ant.taskdefs.exec;
import java.io.File;
import java.io.IOException;
import java.util.Properties;
import org.apache.avalon.framework.logger.AbstractLogEnabled;
import org.apache.myrmidon.api.TaskException;
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.aut.nativelib.impl.DefaultExecManager;
import org.apache.avalon.framework.logger.AbstractLogEnabled;
import org.apache.myrmidon.api.TaskException;
import org.apache.myrmidon.framework.factorys.ExecManagerFactory;
import org.apache.myrmidon.services.ServiceException;

/**
* Runs an external program.
@@ -38,19 +40,6 @@ public class Execute2
*/
private boolean m_useVMLauncher = true;

private static File getAntHomeDirectory()
{
final String antHome = System.getProperty( "myrmidon.home" );
if( null == antHome )
{
final String message =
"Cannot locate antRun script: Property 'ant.home' not specified";
throw new IllegalStateException( message );
}

return new File( antHome );
}

public void setTimeout( final long timeout )
{
m_timeout = timeout;
@@ -66,7 +55,7 @@ public class Execute2
*
* @param commandline the commandline of the subprocess to launch
*/
public void setCommandline( String[] commandline )
public void setCommandline( final String[] commandline )
{
m_command = commandline;
}
@@ -117,8 +106,8 @@ public class Execute2

try
{
final DefaultExecManager manager =
new DefaultExecManager( getAntHomeDirectory() );
final ExecManagerFactory factory = new ExecManagerFactory();
final ExecManager manager = (ExecManager)factory.createService();

final ExecMetaData metaData =
new ExecMetaData( m_command, m_environment,
@@ -130,5 +119,9 @@ public class Execute2
{
throw new TaskException( ee.getMessage(), ee );
}
catch( final ServiceException se )
{
throw new TaskException( se.getMessage(), se );
}
}
}

Loading…
Cancel
Save