Browse Source

Moved getEnvironmentSpec to ExecUtil

git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@270520 13f79535-47bb-0310-9956-ffa450edef68
master
Peter Donald 23 years ago
parent
commit
4ad84fc4cc
2 changed files with 33 additions and 32 deletions
  1. +2
    -32
      proposal/myrmidon/src/java/org/apache/myrmidon/framework/exec/launchers/DefaultCommandLauncher.java
  2. +31
    -0
      proposal/myrmidon/src/java/org/apache/myrmidon/framework/exec/launchers/ExecUtil.java

+ 2
- 32
proposal/myrmidon/src/java/org/apache/myrmidon/framework/exec/launchers/DefaultCommandLauncher.java View File

@@ -71,7 +71,7 @@ public class DefaultCommandLauncher
{
if( ExecUtil.isCwd( metaData.getWorkingDirectory() ) )
{
final String[] env = getEnvironmentSpec( metaData );
final String[] env = ExecUtil.getEnvironmentSpec( metaData );
return Runtime.getRuntime().exec( metaData.getCommand(), env );
}
else if( null == c_execWithCWD )
@@ -85,36 +85,6 @@ public class DefaultCommandLauncher
}
}

/**
* Get the native environment according to proper rules.
* Return null if no environment specified, return environment combined
* with native environment if environment data is additive else just return
* converted environment data.
*/
private String[] getEnvironmentSpec( final ExecMetaData metaData )
throws ExecException, IOException
{
final Properties environment = metaData.getEnvironment();
if( 0 == environment.size() )
{
return null;
}
else
{
if( metaData.isEnvironmentAdditive() )
{
final Properties newEnvironment = new Properties();
newEnvironment.putAll( Environment.getNativeEnvironment() );
newEnvironment.putAll( environment );
return ExecUtil.toNativeEnvironment( newEnvironment );
}
else
{
return ExecUtil.toNativeEnvironment( environment );
}
}
}

/**
* Execute the Java1.3 Runtime.exec() 3 parame method that sets working
* directory. This needs to be done via reflection so that it can compile
@@ -123,7 +93,7 @@ public class DefaultCommandLauncher
private Process execJava13( final ExecMetaData metaData )
throws IOException, ExecException
{
final String[] env = getEnvironmentSpec( metaData );
final String[] env = ExecUtil.getEnvironmentSpec( metaData );
final Object[] args =
{metaData.getCommand(),
env,


+ 31
- 0
proposal/myrmidon/src/java/org/apache/myrmidon/framework/exec/launchers/ExecUtil.java View File

@@ -12,6 +12,7 @@ import java.io.IOException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.Properties;
import org.apache.myrmidon.framework.exec.Environment;
import org.apache.myrmidon.framework.exec.ExecException;
import org.apache.myrmidon.framework.exec.ExecMetaData;

@@ -109,4 +110,34 @@ class ExecUtil
{
return c_cwd;
}

/**
* Get the native environment according to proper rules.
* Return null if no environment specified, return environment combined
* with native environment if environment data is additive else just return
* converted environment data.
*/
protected static String[] getEnvironmentSpec( final ExecMetaData metaData )
throws ExecException, IOException
{
final Properties environment = metaData.getEnvironment();
if( 0 == environment.size() )
{
return null;
}
else
{
if( metaData.isEnvironmentAdditive() )
{
final Properties newEnvironment = new Properties();
newEnvironment.putAll( Environment.getNativeEnvironment() );
newEnvironment.putAll( environment );
return toNativeEnvironment( newEnvironment );
}
else
{
return toNativeEnvironment( environment );
}
}
}
}

Loading…
Cancel
Save