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]>

Reply via email to