donaldp 01/12/22 13:43:49
Modified: proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/exec
ExecTask.java Execute.java
proposal/myrmidon/src/main/org/apache/tools/ant/types
CommandlineJava.java EnvironmentData.java
Log:
Made EnvironmentData.getVariables return a Properties object with all the
environment variables contained within it.
Revision Changes Path
1.4 +13 -10
jakarta-ant/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/exec/ExecTask.java
Index: ExecTask.java
===================================================================
RCS file:
/home/cvs/jakarta-ant/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/exec/ExecTask.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- ExecTask.java 2001/12/22 13:00:26 1.3
+++ ExecTask.java 2001/12/22 21:43:49 1.4
@@ -14,6 +14,8 @@
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.StringReader;
+import java.util.Iterator;
+import java.util.Properties;
import org.apache.myrmidon.api.TaskException;
import org.apache.tools.ant.Project;
import org.apache.tools.ant.Task;
@@ -392,19 +394,20 @@
// show the command
log( cmdl.toString(), Project.MSG_VERBOSE );
- Execute exe = new Execute( createHandler(), createWatchdog() );
+ final Execute exe = new Execute( createHandler(), createWatchdog() );
exe.setWorkingDirectory( dir );
exe.setVMLauncher( vmLauncher );
- String[] environment = env.getVariables();
- if( environment != null )
- {
- for( int i = 0; i < environment.length; i++ )
- {
- log( "Setting environment variable: " + environment[ i ],
- Project.MSG_VERBOSE );
- }
- }
exe.setNewenvironment( newEnvironment );
+
+ final Properties environment = env.getVariables();
+ final Iterator keys = environment.keySet().iterator();
+ while( keys.hasNext() )
+ {
+ final String key = (String)keys.next();
+ final String value = environment.getProperty( key );
+ log( "Setting environment variable: " + key + "=" + value,
+ Project.MSG_VERBOSE );
+ }
exe.setEnvironment( environment );
return exe;
}
1.8 +2 -15
jakarta-ant/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/exec/Execute.java
Index: Execute.java
===================================================================
RCS file:
/home/cvs/jakarta-ant/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/exec/Execute.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- Execute.java 2001/12/22 13:06:32 1.7
+++ Execute.java 2001/12/22 21:43:49 1.8
@@ -33,13 +33,8 @@
*/
public class Execute
{
- /**
- * Invalid exit code.
- */
- public final static int INVALID = Integer.MAX_VALUE;
-
private static final CommandLauncher c_launcher = new
DefaultCommandLauncher();
- private static CommandLauncher c_shellLauncher;
+ private static final CommandLauncher c_shellLauncher =
createShellLauncher();
/**
* Used to destroy processes when the VM exits.
@@ -49,7 +44,7 @@
private ExecMetaData m_metaData;
private String[] m_command;
private Properties m_environment;
- private int m_exitValue = INVALID;
+ private int m_exitValue;
private File m_workingDirectory = new File( "." );
private Project m_project;
private boolean m_newEnvironment;
@@ -60,14 +55,6 @@
private boolean m_useVMLauncher = true;
private ExecuteStreamHandler m_streamHandler;
private ExecuteWatchdog m_watchdog;
-
- /**
- * Builds a command launcher for the OS and JVM we are running under
- */
- static
- {
- c_shellLauncher = createShellLauncher();
- }
private static CommandLauncher createShellLauncher()
{
1.5 +7 -6
jakarta-ant/proposal/myrmidon/src/main/org/apache/tools/ant/types/CommandlineJava.java
Index: CommandlineJava.java
===================================================================
RCS file:
/home/cvs/jakarta-ant/proposal/myrmidon/src/main/org/apache/tools/ant/types/CommandlineJava.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- CommandlineJava.java 2001/12/22 12:54:31 1.4
+++ CommandlineJava.java 2001/12/22 21:43:49 1.5
@@ -12,6 +12,7 @@
import java.util.Properties;
import org.apache.myrmidon.api.TaskException;
import org.apache.myrmidon.framework.Os;
+import org.apache.myrmidon.framework.exec.Environment;
import org.apache.tools.ant.Project;
/**
@@ -136,7 +137,7 @@
// properties are part of the vm options...
if( sysProperties.size() > 0 )
{
- System.arraycopy( sysProperties.getVariables(), 0,
+ System.arraycopy( sysProperties.getJavaVariables(), 0,
result, pos, sysProperties.size() );
pos += sysProperties.size();
}
@@ -338,7 +339,7 @@
{
Properties p = new Properties( sys = System.getProperties()
);
- for( Iterator e = variables.iterator(); e.hasNext(); )
+ for( Iterator e = m_variables.iterator(); e.hasNext(); )
{
EnvironmentData.Variable v =
(EnvironmentData.Variable)e.next();
p.put( v.getKey(), v.getValue() );
@@ -351,10 +352,10 @@
}
}
- public String[] getVariables()
+ public String[] getJavaVariables()
throws TaskException
{
- String props[] = super.getVariables();
+ String props[] = Environment.toNativeFormat(
super.getVariables() );
if( props == null )
return null;
@@ -371,7 +372,7 @@
try
{
SysProperties c = (SysProperties)super.clone();
- c.variables = (ArrayList)variables.clone();
+ c.m_variables.addAll( (ArrayList)m_variables.clone() );
return c;
}
catch( CloneNotSupportedException e )
@@ -399,7 +400,7 @@
public int size()
{
- return variables.size();
+ return m_variables.size();
}
}
1.2 +23 -44
jakarta-ant/proposal/myrmidon/src/main/org/apache/tools/ant/types/EnvironmentData.java
Index: EnvironmentData.java
===================================================================
RCS file:
/home/cvs/jakarta-ant/proposal/myrmidon/src/main/org/apache/tools/ant/types/EnvironmentData.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- EnvironmentData.java 2001/12/22 12:54:24 1.1
+++ EnvironmentData.java 2001/12/22 21:43:49 1.2
@@ -8,6 +8,8 @@
package org.apache.tools.ant.types;
import java.util.ArrayList;
+import java.util.Properties;
+import java.io.File;
import org.apache.myrmidon.api.TaskException;
/**
@@ -17,82 +19,59 @@
*/
public class EnvironmentData
{
- protected ArrayList variables;
+ protected final ArrayList m_variables = new ArrayList();
- public EnvironmentData()
- {
- variables = new ArrayList();
- }
-
- public String[] getVariables()
+ public Properties getVariables()
throws TaskException
{
- if( variables.size() == 0 )
+ final Properties environment = new Properties();
+ final int size = m_variables.size();
+ for( int i = 0; i < size; i++ )
{
- return null;
+ final Variable variable = (Variable)m_variables.get( i );
+ environment.setProperty( variable.getKey(), variable.getValue()
);
}
- String[] result = new String[ variables.size() ];
- for( int i = 0; i < result.length; i++ )
- {
- result[ i ] = ( (Variable)variables.get( i ) ).getContent();
- }
- return result;
+ return environment;
}
public void addVariable( Variable var )
{
- variables.add( var );
+ m_variables.add( var );
}
public static class Variable
{
- private String key, value;
-
- public Variable()
- {
- super();
- }
-
- public void setFile( java.io.File file )
- {
- this.value = file.getAbsolutePath();
- }
+ private String m_key;
+ private String m_value;
- public void setKey( String key )
+ public void setFile( final File file )
{
- this.key = key;
+ m_value = file.getAbsolutePath();
}
- public void setPath( Path path )
+ public void setKey( final String key )
{
- this.value = path.toString();
+ m_key = key;
}
- public void setValue( String value )
+ public void setPath( final Path path )
{
- this.value = value;
+ m_value = path.toString();
}
- public String getContent()
- throws TaskException
+ public void setValue( final String value )
{
- if( key == null || value == null )
- {
- throw new TaskException( "key and value must be specified
for environment variables." );
- }
- StringBuffer sb = new StringBuffer( key.trim() );
- sb.append( "=" ).append( value.trim() );
- return sb.toString();
+ m_value = value;
}
public String getKey()
{
- return this.key;
+ return m_key;
}
public String getValue()
{
- return this.value;
+ return m_value;
}
}
}
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>