donaldp 02/02/21 01:27:22
Modified: proposal/myrmidon/src/java/org/apache/aut/nativelib
ExecMetaData.java
proposal/myrmidon/src/java/org/apache/aut/nativelib/impl
DefaultExecManager.java Environment.java
proposal/myrmidon/src/java/org/apache/aut/nativelib/impl/launchers
ExecUtil.java
proposal/myrmidon/src/java/org/apache/myrmidon/framework
Execute.java
Log:
Reworked the ExecManager service so that the Execute adapter object becomes
responsible for combining supplied env vars with native env vars if required
Revision Changes Path
1.3 +2 -22
jakarta-ant/proposal/myrmidon/src/java/org/apache/aut/nativelib/ExecMetaData.java
Index: ExecMetaData.java
===================================================================
RCS file:
/home/cvs/jakarta-ant/proposal/myrmidon/src/java/org/apache/aut/nativelib/ExecMetaData.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- ExecMetaData.java 21 Jan 2002 11:44:24 -0000 1.2
+++ ExecMetaData.java 21 Feb 2002 09:27:21 -0000 1.3
@@ -17,7 +17,7 @@
* <code>ExecManager</code> to actually launch the native executable.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Peter Donald</a>
- * @version $Revision: 1.2 $ $Date: 2002/01/21 11:44:24 $
+ * @version $Revision: 1.3 $ $Date: 2002/02/21 09:27:21 $
*/
public class ExecMetaData
{
@@ -46,14 +46,6 @@
private Properties m_environment;
/**
- * If this variable is true then then the environment specified is
- * added to the environment variables for current process. If this
- * value is false then the specified environment replaces the environment
- * for the command.
- */
- private boolean m_isEnvironmentAdditive;
-
- /**
* Construct the meta data for executable as appropriate.
* Note that it is invalid to specify a <code>null</code>
* workingDirectory or command. It is also invalid to specify
@@ -61,13 +53,11 @@
*/
public ExecMetaData( final String[] command,
final Properties environment,
- final File workingDirectory,
- final boolean environmentAdditive )
+ final File workingDirectory )
{
m_command = command;
m_environment = environment;
m_workingDirectory = workingDirectory;
- m_isEnvironmentAdditive = environmentAdditive;
if( null == m_workingDirectory )
{
@@ -78,11 +68,6 @@
{
throw new NullPointerException( "command" );
}
-
- if( null == m_environment && m_isEnvironmentAdditive )
- {
- throw new IllegalArgumentException( "isEnvironmentAdditive" );
- }
}
public File getWorkingDirectory()
@@ -98,10 +83,5 @@
public Properties getEnvironment()
{
return m_environment;
- }
-
- public boolean isEnvironmentAdditive()
- {
- return m_isEnvironmentAdditive;
}
}
1.8 +3 -28
jakarta-ant/proposal/myrmidon/src/java/org/apache/aut/nativelib/impl/DefaultExecManager.java
Index: DefaultExecManager.java
===================================================================
RCS file:
/home/cvs/jakarta-ant/proposal/myrmidon/src/java/org/apache/aut/nativelib/impl/DefaultExecManager.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- DefaultExecManager.java 2 Feb 2002 06:38:07 -0000 1.7
+++ DefaultExecManager.java 21 Feb 2002 09:27:21 -0000 1.8
@@ -32,7 +32,7 @@
*
* @author <a href="mailto:[EMAIL PROTECTED]">Peter Donald</a>
* @author <a href="mailto:[EMAIL PROTECTED]">Thomas Haas</a>
- * @version $Revision: 1.7 $ $Date: 2002/02/02 06:38:07 $
+ * @version $Revision: 1.8 $ $Date: 2002/02/21 09:27:21 $
* @see ExecManager
* @see ExecMetaData
* @see Environment
@@ -112,9 +112,8 @@
final long timeout )
throws IOException, ExecException
{
- final ExecMetaData metaData = prepareExecMetaData( command );
- final CommandLauncher launcher = getLauncher( metaData );
- final Process process = launcher.exec( metaData );
+ final CommandLauncher launcher = getLauncher( command );
+ final Process process = launcher.exec( command );
final ProcessMonitor monitor =
new ProcessMonitor( process, input, output, error, timeout );
@@ -157,30 +156,6 @@
catch( final InterruptedException ie )
{
//should never happen
- }
- }
-
- /**
- * Utility method to preapre a metaData object.
- * This involves adding the native environment to the metaData if the
- * metaData is specified as being additive.
- */
- private ExecMetaData prepareExecMetaData( final ExecMetaData metaData )
- throws ExecException
- {
- if( !metaData.isEnvironmentAdditive() )
- {
- return metaData;
- }
- else
- {
- final Properties newEnvironment = new Properties();
- newEnvironment.putAll( getNativeEnvironment() );
- newEnvironment.putAll( metaData.getEnvironment() );
- return new ExecMetaData( metaData.getCommand(),
- newEnvironment,
- metaData.getWorkingDirectory(),
- false );
}
}
1.3 +2 -2
jakarta-ant/proposal/myrmidon/src/java/org/apache/aut/nativelib/impl/Environment.java
Index: Environment.java
===================================================================
RCS file:
/home/cvs/jakarta-ant/proposal/myrmidon/src/java/org/apache/aut/nativelib/impl/Environment.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- Environment.java 2 Feb 2002 06:38:07 -0000 1.2
+++ Environment.java 21 Feb 2002 09:27:21 -0000 1.3
@@ -26,7 +26,7 @@
*
* @author <a href="mailto:[EMAIL PROTECTED]">Peter Donald</a>
* @author <a href="mailto:[EMAIL PROTECTED]">Thomas Haas</a>
- * @version $Revision: 1.2 $ $Date: 2002/02/02 06:38:07 $
+ * @version $Revision: 1.3 $ $Date: 2002/02/21 09:27:21 $
*/
final class Environment
{
@@ -154,7 +154,7 @@
{
final String[] command = getEnvCommand();
final File workingDirectory = new File( "." );
- final ExecMetaData metaData = new ExecMetaData( command, null,
workingDirectory, false );
+ final ExecMetaData metaData = new ExecMetaData( command, null,
workingDirectory );
final ByteArrayOutputStream output = new ByteArrayOutputStream();
final int retval = m_execManager.execute( metaData, null, output,
output, 0 );
1.4 +2 -3
jakarta-ant/proposal/myrmidon/src/java/org/apache/aut/nativelib/impl/launchers/ExecUtil.java
Index: ExecUtil.java
===================================================================
RCS file:
/home/cvs/jakarta-ant/proposal/myrmidon/src/java/org/apache/aut/nativelib/impl/launchers/ExecUtil.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- ExecUtil.java 2 Feb 2002 06:38:07 -0000 1.3
+++ ExecUtil.java 21 Feb 2002 09:27:22 -0000 1.4
@@ -19,7 +19,7 @@
* A set of utility functions useful when writing CommandLaunchers.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Peter Donald</a>
- * @version $Revision: 1.3 $ $Date: 2002/02/02 06:38:07 $
+ * @version $Revision: 1.4 $ $Date: 2002/02/21 09:27:22 $
*/
class ExecUtil
{
@@ -64,8 +64,7 @@
return new ExecMetaData( command,
metaData.getEnvironment(),
- metaData.getWorkingDirectory(),
- metaData.isEnvironmentAdditive() );
+ metaData.getWorkingDirectory() );
}
/**
1.3 +17 -9
jakarta-ant/proposal/myrmidon/src/java/org/apache/myrmidon/framework/Execute.java
Index: Execute.java
===================================================================
RCS file:
/home/cvs/jakarta-ant/proposal/myrmidon/src/java/org/apache/myrmidon/framework/Execute.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- Execute.java 10 Feb 2002 01:01:12 -0000 1.2
+++ Execute.java 21 Feb 2002 09:27:22 -0000 1.3
@@ -23,7 +23,7 @@
*
* @author <a href="mailto:[EMAIL PROTECTED]">Peter Donald</a>
* @author <a href="mailto:[EMAIL PROTECTED]">Thomas Haas</a>
- * @version $Revision: 1.2 $ $Date: 2002/02/10 01:01:12 $
+ * @version $Revision: 1.3 $ $Date: 2002/02/21 09:27:22 $
*/
public class Execute
{
@@ -80,11 +80,12 @@
}
/**
- * Set whether to propagate the default environment or not.
- *
- * @param newEnvironment whether to propagate the process environment.
+ * If this variable is false then then the environment specified is
+ * added to the environment variables for current process. If this
+ * value is true then the specified environment replaces the environment
+ * for the command.
*/
- public void setNewenvironment( boolean newEnvironment )
+ public void setNewenvironment( final boolean newEnvironment )
{
m_newEnvironment = newEnvironment;
}
@@ -137,9 +138,9 @@
private int executeNativeProcess()
throws TaskException
{
- final ExecMetaData metaData = buildExecMetaData();
try
{
+ final ExecMetaData metaData = buildExecMetaData();
if( null != m_handler )
{
return m_execManager.execute( metaData, m_handler, m_timeout
);
@@ -168,12 +169,19 @@
* to pass to the ExecManager service.
*/
private ExecMetaData buildExecMetaData()
+ throws ExecException
{
final String[] command = m_command.getCommandline();
+ final Properties newEnvironment = new Properties();
+ if( !m_newEnvironment )
+ {
+ newEnvironment.putAll( m_execManager.getNativeEnvironment() );
+ }
+ newEnvironment.putAll( m_environment );
+
return new ExecMetaData( command,
- m_environment,
- m_workingDirectory,
- m_newEnvironment );
+ newEnvironment,
+ m_workingDirectory );
}
}
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>