Browse Source

Updated to use the new native command launching infrastructure.

git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@270284 13f79535-47bb-0310-9956-ffa450edef68
master
Peter Donald 24 years ago
parent
commit
928698c467
2 changed files with 44 additions and 84 deletions
  1. +22
    -42
      proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/exec/Execute.java
  2. +22
    -42
      proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/exec/Execute.java

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

@@ -16,6 +16,14 @@ import java.util.Locale;
import java.util.Vector;
import org.apache.myrmidon.api.TaskException;
import org.apache.myrmidon.framework.Os;
import org.apache.myrmidon.framework.exec.CommandLauncher;
import org.apache.myrmidon.framework.exec.launchers.DefaultCommandLauncher;
import org.apache.myrmidon.framework.exec.launchers.MacCommandLauncher;
import org.apache.myrmidon.framework.exec.launchers.WinNTCommandLauncher;
import org.apache.myrmidon.framework.exec.launchers.ScriptCommandLauncher;
import org.apache.myrmidon.framework.exec.launchers.PerlCommandLauncher;
import org.apache.myrmidon.framework.exec.ExecMetaData;
import org.apache.myrmidon.framework.exec.launchers.ExecUtil;
import org.apache.tools.ant.Project;
import org.apache.tools.ant.Task;
import org.apache.tools.ant.types.Commandline;
@@ -33,7 +41,7 @@ public class Execute
public final static int INVALID = Integer.MAX_VALUE;

protected static String c_antWorkingDirectory = System.getProperty( "user.dir" );
private static CommandLauncher c_vmLauncher;
private static CommandLauncher c_launcher;
private static CommandLauncher c_shellLauncher;
private static Vector c_procEnvironment;

@@ -64,42 +72,22 @@ public class Execute

try
{
// Try using a JDK 1.3 launcher
try
{
c_vmLauncher = new Java13CommandLauncher();
}
catch( NoSuchMethodException exc )
{
// Ignore and keep try
}
c_launcher = new DefaultCommandLauncher();

if( Os.isFamily( "mac" ) )
{
// Mac
c_shellLauncher = new MacCommandLauncher( new CommandLauncher() );
c_shellLauncher = new MacCommandLauncher();
}
else if( Os.isFamily( "os/2" ) )
{
// OS/2 - use same mechanism as Windows 2000
c_shellLauncher = new WinNTCommandLauncher( new CommandLauncher() );
c_shellLauncher = new WinNTCommandLauncher();
}
else if( Os.isFamily( "windows" ) )
{
// Windows. Need to determine which JDK we're running in

CommandLauncher baseLauncher;
if( System.getProperty( "java.version" ).startsWith( "1.1" ) )
{
// JDK 1.1
baseLauncher = new Java11CommandLauncher();
}
else
{
// JDK 1.2
baseLauncher = new CommandLauncher();
}

// Determine if we're running under 2000/NT or 98/95
String osname =
System.getProperty( "os.name" ).toLowerCase( Locale.US );
@@ -107,35 +95,23 @@ public class Execute
if( osname.indexOf( "nt" ) >= 0 || osname.indexOf( "2000" ) >= 0 )
{
// Windows 2000/NT
c_shellLauncher = new WinNTCommandLauncher( baseLauncher );
c_shellLauncher = new WinNTCommandLauncher();
}
else
{
// Windows 98/95 - need to use an auxiliary script
c_shellLauncher = new ScriptCommandLauncher( "bin/antRun.bat", baseLauncher );
c_shellLauncher = new ScriptCommandLauncher( "bin/antRun.bat" );
}
}
else if( (new Os( "netware" )).eval() )
{
// NetWare. Need to determine which JDK we're running in
CommandLauncher baseLauncher;
if( System.getProperty( "java.version" ).startsWith( "1.1" ) )
{
// JDK 1.1
baseLauncher = new Java11CommandLauncher();
}
else
{
// JDK 1.2
baseLauncher = new CommandLauncher();
}

c_shellLauncher = new PerlScriptCommandLauncher( "bin/antRun.pl", baseLauncher );
c_shellLauncher = new PerlCommandLauncher( "bin/antRun.pl" );
}
else
{
// Generic
c_shellLauncher = new ScriptCommandLauncher( "bin/antRun", new CommandLauncher() );
c_shellLauncher = new ScriptCommandLauncher( "bin/antRun" );
}
}
catch( TaskException e )
@@ -438,13 +414,17 @@ public class Execute
public int execute()
throws IOException, TaskException
{
CommandLauncher launcher = c_vmLauncher != null ? c_vmLauncher : c_shellLauncher;
CommandLauncher launcher = c_launcher != null ? c_launcher : c_shellLauncher;
if( !m_useVMLauncher )
{
launcher = c_shellLauncher;
}

final Process process = launcher.exec( m_project, getCommandline(), getEnvironment(), m_workingDirectory );
if( null == m_workingDirectory ) m_workingDirectory = new File( "." );
final ExecMetaData metaData =
new ExecMetaData( getCommandline(), getEnvironment(),
m_workingDirectory, false );
final Process process = launcher.exec( metaData );
try
{
m_streamHandler.setProcessInputStream( process.getOutputStream() );


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

@@ -16,6 +16,14 @@ import java.util.Locale;
import java.util.Vector;
import org.apache.myrmidon.api.TaskException;
import org.apache.myrmidon.framework.Os;
import org.apache.myrmidon.framework.exec.CommandLauncher;
import org.apache.myrmidon.framework.exec.launchers.DefaultCommandLauncher;
import org.apache.myrmidon.framework.exec.launchers.MacCommandLauncher;
import org.apache.myrmidon.framework.exec.launchers.WinNTCommandLauncher;
import org.apache.myrmidon.framework.exec.launchers.ScriptCommandLauncher;
import org.apache.myrmidon.framework.exec.launchers.PerlCommandLauncher;
import org.apache.myrmidon.framework.exec.ExecMetaData;
import org.apache.myrmidon.framework.exec.launchers.ExecUtil;
import org.apache.tools.ant.Project;
import org.apache.tools.ant.Task;
import org.apache.tools.ant.types.Commandline;
@@ -33,7 +41,7 @@ public class Execute
public final static int INVALID = Integer.MAX_VALUE;

protected static String c_antWorkingDirectory = System.getProperty( "user.dir" );
private static CommandLauncher c_vmLauncher;
private static CommandLauncher c_launcher;
private static CommandLauncher c_shellLauncher;
private static Vector c_procEnvironment;

@@ -64,42 +72,22 @@ public class Execute

try
{
// Try using a JDK 1.3 launcher
try
{
c_vmLauncher = new Java13CommandLauncher();
}
catch( NoSuchMethodException exc )
{
// Ignore and keep try
}
c_launcher = new DefaultCommandLauncher();

if( Os.isFamily( "mac" ) )
{
// Mac
c_shellLauncher = new MacCommandLauncher( new CommandLauncher() );
c_shellLauncher = new MacCommandLauncher();
}
else if( Os.isFamily( "os/2" ) )
{
// OS/2 - use same mechanism as Windows 2000
c_shellLauncher = new WinNTCommandLauncher( new CommandLauncher() );
c_shellLauncher = new WinNTCommandLauncher();
}
else if( Os.isFamily( "windows" ) )
{
// Windows. Need to determine which JDK we're running in

CommandLauncher baseLauncher;
if( System.getProperty( "java.version" ).startsWith( "1.1" ) )
{
// JDK 1.1
baseLauncher = new Java11CommandLauncher();
}
else
{
// JDK 1.2
baseLauncher = new CommandLauncher();
}

// Determine if we're running under 2000/NT or 98/95
String osname =
System.getProperty( "os.name" ).toLowerCase( Locale.US );
@@ -107,35 +95,23 @@ public class Execute
if( osname.indexOf( "nt" ) >= 0 || osname.indexOf( "2000" ) >= 0 )
{
// Windows 2000/NT
c_shellLauncher = new WinNTCommandLauncher( baseLauncher );
c_shellLauncher = new WinNTCommandLauncher();
}
else
{
// Windows 98/95 - need to use an auxiliary script
c_shellLauncher = new ScriptCommandLauncher( "bin/antRun.bat", baseLauncher );
c_shellLauncher = new ScriptCommandLauncher( "bin/antRun.bat" );
}
}
else if( (new Os( "netware" )).eval() )
{
// NetWare. Need to determine which JDK we're running in
CommandLauncher baseLauncher;
if( System.getProperty( "java.version" ).startsWith( "1.1" ) )
{
// JDK 1.1
baseLauncher = new Java11CommandLauncher();
}
else
{
// JDK 1.2
baseLauncher = new CommandLauncher();
}

c_shellLauncher = new PerlScriptCommandLauncher( "bin/antRun.pl", baseLauncher );
c_shellLauncher = new PerlCommandLauncher( "bin/antRun.pl" );
}
else
{
// Generic
c_shellLauncher = new ScriptCommandLauncher( "bin/antRun", new CommandLauncher() );
c_shellLauncher = new ScriptCommandLauncher( "bin/antRun" );
}
}
catch( TaskException e )
@@ -438,13 +414,17 @@ public class Execute
public int execute()
throws IOException, TaskException
{
CommandLauncher launcher = c_vmLauncher != null ? c_vmLauncher : c_shellLauncher;
CommandLauncher launcher = c_launcher != null ? c_launcher : c_shellLauncher;
if( !m_useVMLauncher )
{
launcher = c_shellLauncher;
}

final Process process = launcher.exec( m_project, getCommandline(), getEnvironment(), m_workingDirectory );
if( null == m_workingDirectory ) m_workingDirectory = new File( "." );
final ExecMetaData metaData =
new ExecMetaData( getCommandline(), getEnvironment(),
m_workingDirectory, false );
final Process process = launcher.exec( metaData );
try
{
m_streamHandler.setProcessInputStream( process.getOutputStream() );


Loading…
Cancel
Save