You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ant.apache.org by do...@locus.apache.org on 2000/12/05 10:22:06 UTC

cvs commit: jakarta-ant/proposal/myrmidon/src/script ant ant.bat

donaldp     00/12/05 01:22:06

  Modified:    proposal/myrmidon/src/java/org/apache/ant Main.java
               proposal/myrmidon/src/java/org/apache/ant/convert
                        DefaultConverterLoader.java
               proposal/myrmidon/src/java/org/apache/ant/project
                        DefaultProjectEngine.java
                        DefaultProjectListener.java Project.java
                        ProjectEngine.java ProjectListener.java Target.java
               proposal/myrmidon/src/java/org/apache/ant/tasklet/engine
                        DefaultTaskletEngine.java TaskletEngine.java
                        TskDeployer.java
               proposal/myrmidon/src/java/org/apache/ant/tasks/core
                        ConfigurationTest.java ContentTest.java Echo.java
                        PrimitiveTypesTest.java taskdefs.properties
               proposal/myrmidon/src/make sample.xmk
               proposal/myrmidon/src/script ant ant.bat
  Added:       proposal/myrmidon/src/java/org/apache/ant/launcher
                        AntLoader.java
               proposal/myrmidon/src/java/org/apache/ant/project
                        ProjectListenerSupport.java
                        ProjectToListenerAdapter.java
               proposal/myrmidon/src/java/org/apache/ant/tasks/core
                        AntCall.java RegisterTasklet.java
               proposal/myrmidon/src/manifest ant-manifest.mf
                        myrmidon-manifest.mf
  Log:
  Continued developing myrmidon
  * simplified logging interface to be independent of org.apache.log
  * made it so that you no longer need to build a classpath and hand it to ant!!!
  * added ant-call task
  
  Revision  Changes    Path
  1.2       +38 -31    jakarta-ant/proposal/myrmidon/src/java/org/apache/ant/Main.java
  
  Index: Main.java
  ===================================================================
  RCS file: /home/cvs/jakarta-ant/proposal/myrmidon/src/java/org/apache/ant/Main.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- Main.java	2000/12/04 13:37:27	1.1
  +++ Main.java	2000/12/05 09:21:42	1.2
  @@ -18,13 +18,15 @@
   import java.net.URLClassLoader;
   import java.util.ArrayList;
   import java.util.HashMap;
  -import java.util.List;
   import java.util.Iterator;
  +import java.util.List;
  +import org.apache.ant.launcher.AntLoader;
   import org.apache.ant.project.DefaultProjectEngine;
   import org.apache.ant.project.Project;
   import org.apache.ant.project.ProjectBuilder;
   import org.apache.ant.project.ProjectEngine;
   import org.apache.ant.project.ProjectListener;
  +import org.apache.ant.project.ProjectToListenerAdapter;
   import org.apache.ant.tasklet.JavaVersion;
   import org.apache.ant.tasklet.TaskletContext;
   import org.apache.avalon.Disposable;
  @@ -57,10 +59,14 @@
       public final static String     VERSION                   = 
           "Ant " + BUILD_VERSION + " compiled on " + BUILD_DATE;
   
  -    protected final static String  DEFAULT_LOGLEVEL          = "INFO";
  -    protected final static String  DEFAULT_LIB_DIRECTORY     = ".." + File.separator + "lib";
  +    protected final static String  DEFAULT_LOGLEVEL          = "WARN";
  +    protected final static String  DEFAULT_LIB_DIRECTORY     = "lib";
       protected final static String  DEFAULT_TASKLIB_DIRECTORY = DEFAULT_LIB_DIRECTORY;
       protected final static String  DEFAULT_FILENAME          = "build.xmk";
  +
  +    protected final static String  DEFAULT_ENGINE            = 
  +        "org.apache.ant.project.DefaultProjectEngine";
  +
       protected final static String  DEFAULT_LISTENER          = 
           "org.apache.ant.project.DefaultProjectListener";
   
  @@ -82,7 +88,7 @@
       private static final int       HOME_DIR_OPT              = 7;
       
       //incompatable options for info options
  -    private static final int       INFO_OPT_INCOMPAT[]       = new int[] 
  +    private static final int[]     INFO_OPT_INCOMPAT         = new int[] 
       { 
           HELP_OPT, QUIET_OPT, VERBOSE_OPT, FILE_OPT, 
           LOG_LEVEL_OPT, VERSION_OPT, LISTENER_OPT,
  @@ -91,13 +97,14 @@
       };
       
       //incompatable options for other logging options
  -    private static final int       LOG_OPT_INCOMPAT[]        = new int[] 
  +    private static final int[]     LOG_OPT_INCOMPAT          = new int[] 
       {
           QUIET_OPT, VERBOSE_OPT, LOG_LEVEL_OPT
       };
   
       protected Logger               m_logger;
   
  +    protected ProjectListener      m_listener;
       protected File                 m_binDir;
       protected File                 m_homeDir;
       protected File                 m_libDir;
  @@ -105,7 +112,7 @@
       protected File                 m_buildFile;
       protected File                 m_userDir;
   
  -    public static void main( final String args[] )
  +    public static void main( final String[] args )
       {
           final Main main = new Main();
   
  @@ -128,7 +135,7 @@
       protected CLOptionDescriptor[] createCLOptions()
       {
           //TODO: localise
  -        final CLOptionDescriptor options[] = new CLOptionDescriptor[ 13 ];
  +        final CLOptionDescriptor[] options = new CLOptionDescriptor[ 13 ];
   
           options[0] =
               new CLOptionDescriptor( "help",
  @@ -291,9 +298,9 @@
           m_taskLibDir = getTaskLibDir( m_homeDir, taskLibDir );
           m_buildFile = getFile( filename );
   
  -        m_logger.info( "Ant Base Directory: " + m_homeDir );
  +        m_logger.warn( "Ant Build File: " + m_buildFile );
  +        m_logger.info( "Ant Home Directory: " + m_homeDir );
           m_logger.info( "Ant Bin Directory: " + m_binDir );
  -        m_logger.info( "Ant Build File: " + m_buildFile );
           m_logger.debug( "Ant Lib Directory: " + m_libDir );
           m_logger.debug( "Ant Task Lib Directory: " + m_taskLibDir );
   
  @@ -310,6 +317,8 @@
               ((Initializable)engine).init();
           }
   
  +        engine.addProjectListener( m_listener );
  +
           deployDefaultTaskLibs( engine, m_taskLibDir );
   
           BufferedReader reader = null;
  @@ -343,10 +352,9 @@
                                             final File taskLibDirectory )
       
       {
  -        final ExtensionFileFilter filter = 
  -            new ExtensionFileFilter( new String[] { ".tsk" } );
  +        final ExtensionFileFilter filter = new ExtensionFileFilter( ".tsk" );
   
  -        final File files[] = taskLibDirectory.listFiles( filter );
  +        final File[] files = taskLibDirectory.listFiles( filter );
           final Deployer deployer = engine.getDeployer();
   
           for( int i = 0; i < files.length; i++ )
  @@ -401,36 +409,35 @@
   
       protected void setupListener( final String listenerName )
       {
  -        final ProjectListener listener = createListener( listenerName );
  -        m_logger.addLogTarget( listener );
  +        m_listener = createListener( listenerName );
  +        m_logger.addLogTarget( new ProjectToListenerAdapter( m_listener ) );
       }
   
       protected void setupContextClassLoader( final File libDir )
       {
  -        final ClassLoader classLoader = createClassLoader( libDir );
  -        Thread.currentThread().setContextClassLoader( classLoader );
  +        setupClassLoader( libDir );
  +        Thread.currentThread().setContextClassLoader( AntLoader.getLoader() );
       }
   
  -    protected ClassLoader createClassLoader( final File libDir )
  +    protected void setupClassLoader( final File libDir )
       {
           final ExtensionFileFilter filter = 
               new ExtensionFileFilter( new String[] { ".jar", ".zip" } );
   
  -        final ArrayList urlList = new ArrayList();
  -        toURLS( urlList, libDir.listFiles( filter ) );
  -        
  -        final URL urls[] = (URL[])urlList.toArray( new URL[0] );
  +        final File[] files = libDir.listFiles( filter );
   
  -        return new URLClassLoader( urls, ClassLoader.getSystemClassLoader() );
  -    }
  +        final AntLoader classLoader = AntLoader.getLoader();
   
  -    protected void toURLS( final ArrayList urls, final File files[] )
  -    {
           for( int i = 0; i < files.length; i++ )
           {
  -            try { urls.add( files[ i ].toURL() ); }
  -            catch( final MalformedURLException mue ) {}
  -        }
  +            if( !files[ i ].getName().equals( "ant.jar" ) &&
  +                !files[ i ].getName().equals( "myrmidon.jar" ) &&
  +                !files[ i ].getName().equals( "avalonapi.jar" ) )
  +            {                
  +                try { classLoader.addURL( files[ i ].toURL() ); }
  +                catch( final MalformedURLException mue ) {}
  +            }
  +        }        
       }
   
       protected Project getProject( final String builderName, final File file )
  @@ -497,7 +504,7 @@
   
       protected ProjectEngine createProjectEngine()
       {
  -        return new DefaultProjectEngine();
  +        return (ProjectEngine)createObject( DEFAULT_ENGINE, "project-engine" );
       }
   
       protected File getHomeDir( final String homeDir )
  @@ -760,11 +767,11 @@
       {
           try
           {
  -            final Class clazz = Class.forName( objectName );
  +            final Class clazz = Class.forName( objectName ); 
               return clazz.newInstance();
           }
           catch( final IllegalAccessException iae )
  -        {
  +        { 
               throw new AntException( "Non-public constructor for " + type + " " + objectName, 
                                       iae );
           }
  
  
  
  1.2       +3 -2      jakarta-ant/proposal/myrmidon/src/java/org/apache/ant/convert/DefaultConverterLoader.java
  
  Index: DefaultConverterLoader.java
  ===================================================================
  RCS file: /home/cvs/jakarta-ant/proposal/myrmidon/src/java/org/apache/ant/convert/DefaultConverterLoader.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- DefaultConverterLoader.java	2000/12/04 13:37:28	1.1
  +++ DefaultConverterLoader.java	2000/12/05 09:21:45	1.2
  @@ -22,13 +22,14 @@
   {
       public DefaultConverterLoader()
       {
  -        super( new URLClassLoader( new URL[0], 
  +        super( new URLClassLoader( new URL[0],
                                      Thread.currentThread().getContextClassLoader() ) );
       }
       
       public DefaultConverterLoader( final URL location )
       {
  -        super( new URLClassLoader( new URL[] { location } ) );
  +        super( new URLClassLoader( new URL[] { location }, 
  +                                   Thread.currentThread().getContextClassLoader() ) );
       }
       
       public Converter loadConverter( final String converter )
  
  
  
  1.1                  jakarta-ant/proposal/myrmidon/src/java/org/apache/ant/launcher/AntLoader.java
  
  Index: AntLoader.java
  ===================================================================
  /*
   * Copyright (C) The Apache Software Foundation. All rights reserved.
   *
   * This software is published under the terms of the Apache Software License
   * version 1.1, a copy of which has been included with this distribution in
   * the LICENSE file.
   */
  package org.apache.ant.launcher;
  
  import java.lang.reflect.Method;
  import java.net.URL;
  import java.net.URLClassLoader;
  
  /**
   * AvalonLoader is the class that bootstraps and installs the security manager.
   *
   * @author <a href="mailto:donaldp@apache.org">Peter Donald</a>
   */
  public final class AntLoader
      extends URLClassLoader
  {
      protected static AntLoader     c_classLoader;
  
      public static AntLoader getLoader()
      {
          if( null == c_classLoader ) 
          {
              c_classLoader = new AntLoader( new URL[ 0 ] );
          }
  
          return c_classLoader;
      }
  
      public final static void main( final String args[] ) 
          throws Exception
      { 
          final URL archive = new URL( "file:lib/myrmidon.jar" );
          c_classLoader = new AntLoader( new URL[] { archive } );
          
          try
          {
              //load class and retrieve appropriate main method.
              final Class clazz = c_classLoader.loadClass( "org.apache.ant.Main" );
              final Method method = clazz.getMethod( "main", new Class[] { args.getClass() } );
              
              //kick the tires and light the fires....
              method.invoke( null, new Object[] { args } );
          }
          catch( final Throwable throwable ) 
          {
              throwable.printStackTrace();
          }
      }
  
      public AntLoader( final URL[] urls )
      {
          super( urls );
      }
  
      public void addURL( final URL url )
      {
          super.addURL( url );
      }
  }
  
  
  
  1.2       +92 -36    jakarta-ant/proposal/myrmidon/src/java/org/apache/ant/project/DefaultProjectEngine.java
  
  Index: DefaultProjectEngine.java
  ===================================================================
  RCS file: /home/cvs/jakarta-ant/proposal/myrmidon/src/java/org/apache/ant/project/DefaultProjectEngine.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- DefaultProjectEngine.java	2000/12/04 13:37:30	1.1
  +++ DefaultProjectEngine.java	2000/12/05 09:21:47	1.2
  @@ -32,39 +32,52 @@
   public class DefaultProjectEngine
       implements ProjectEngine, Initializable, Disposable
   {
  -    protected Deployer              m_deployer;
  -    protected TaskletRegistry       m_taskletRegistry;
  -    protected ConverterRegistry     m_converterRegistry;
  -    protected TaskletEngine         m_taskletEngine;
  -    protected Logger                m_logger;
  -
  +    protected Deployer                 m_deployer;
  +    protected TaskletRegistry          m_taskletRegistry;
  +    protected ConverterRegistry        m_converterRegistry;
  +    protected TaskletEngine            m_taskletEngine;
  +    protected Logger                   m_logger;
  +    protected ProjectListenerSupport   m_listenerSupport;
  +    protected DefaultComponentManager  m_componentManager;
  +    
       public void setLogger( final Logger logger )
       {
           m_logger = logger;
       }
   
  +    public void addProjectListener( final ProjectListener listener )
  +    {
  +        m_listenerSupport.addProjectListener( listener );
  +    }
  +
  +    public void removeProjectListener( final ProjectListener listener )
  +    {
  +        m_listenerSupport.removeProjectListener( listener );
  +    }
  +
       public void init()
           throws Exception
       {
  +        m_listenerSupport = new ProjectListenerSupport();
  +
           m_taskletEngine = createTaskletEngine();
  +        m_taskletEngine.setLogger( m_logger );
   
           m_taskletRegistry = createTaskletRegistry();
           m_converterRegistry = createConverterRegistry();
           m_deployer = createDeployer();
  -
  -        //final DefaultTaskletContext context = new DefaultTaskletContext();
  -        //m_taskletEngine.contextualize( context );
   
  -        final DefaultComponentManager componentManager = new DefaultComponentManager();
  -        componentManager.put( "org.apache.ant.tasklet.engine.TaskletRegistry", 
  -                              m_taskletRegistry );
  +        m_componentManager = new DefaultComponentManager();
  +        m_componentManager.put( "org.apache.ant.project.ProjectEngine", this );
  +        m_componentManager.put( "org.apache.ant.tasklet.engine.TaskletRegistry", 
  +                                m_taskletRegistry );
   
  -        componentManager.put( "org.apache.ant.convert.ConverterRegistry", 
  -                              m_converterRegistry );
  +        m_componentManager.put( "org.apache.ant.convert.ConverterRegistry", 
  +                                m_converterRegistry );
   
  -        componentManager.put( "org.apache.avalon.camelot.Deployer", m_deployer );
  +        m_componentManager.put( "org.apache.avalon.camelot.Deployer", m_deployer );
          
  -        m_taskletEngine.compose( componentManager );
  +        m_taskletEngine.compose( m_componentManager );
           
           if( m_taskletEngine instanceof Initializable )
           {
  @@ -112,15 +125,36 @@
       public void execute( final Project project, final String target )
           throws AntException
       {
  -        m_taskletEngine.contextualize( project.getContext() );
  -        executeTarget( "<init>", project.getImplicitTarget() );
  +        m_componentManager.put( "org.apache.ant.project.Project", project );
  +
  +        final TaskletContext context = project.getContext();
  +
  +        final String projectName = (String)context.getProperty( Project.PROJECT );
  +
  +        m_listenerSupport.projectStarted( projectName );
  +
  +        executeTargetWork( "<init>", project.getImplicitTarget(), context );
  +
  +        //context = new DefaultTaskletContext( context );
  +        
  +        //placing logger lower (at targetlevel or at task level)
  +        //is possible if you want more fine grained control
  +        context.setProperty( TaskletContext.LOGGER, m_logger );
   
  -        final ArrayList done = new ArrayList();
  -        execute( project, target, done );
  +        execute( project, target, context );
  +
  +        m_listenerSupport.projectFinished();
  +    }
  +
  +    public void execute( Project project, String target, TaskletContext context )
  +        throws AntException
  +    {
  +        execute( project, target, context, new ArrayList() );
       }
   
       protected void execute( final Project project, 
                               final String targetName, 
  +                            final TaskletContext context,
                               final ArrayList done )
           throws AntException
       {
  @@ -139,45 +173,67 @@
               final String dependency = (String)dependencies.next();
               if( !done.contains( dependency ) )
               {
  -                execute( project, dependency, done );
  +                execute( project, dependency, context, done );
               }
           }
   
  -        final TaskletContext context = getContextFor( project, targetName );
  -        m_taskletEngine.contextualize( context );
  -        executeTarget( targetName, target );
  +        executeTarget( targetName, target, context );
       }
   
  -    protected TaskletContext getContextFor( final Project project, final String targetName )
  +    protected void executeTarget( final String targetName, 
  +                                  final Target target, 
  +                                  final TaskletContext context )
  +        throws AntException
       {
  -        final DefaultTaskletContext context = 
  -            new DefaultTaskletContext( project.getContext() );
  +        m_componentManager.put( "org.apache.ant.project.Target", target );
   
  -        context.setProperty( Project.TARGET, targetName );
  -        context.put( TaskletContext.LOGGER, m_logger );
  +        final TaskletContext targetContext = new DefaultTaskletContext( context );
  +        targetContext.setProperty( Project.TARGET, targetName );
  +        
  +        m_listenerSupport.targetStarted( targetName );
   
  -        return context;
  +        executeTargetWork( targetName, target, targetContext );
  +        
  +        m_listenerSupport.targetFinished();
       }
   
  -    protected void executeTarget( final String targetName, final Target target )
  -        throws AntException
  +    protected void executeTargetWork( final String name, 
  +                                      final Target target, 
  +                                      final TaskletContext context )
       {
  -        m_logger.debug( "Executing target " + targetName );
  -        
  +        m_logger.debug( "Executing target " + name );
  +
           final Iterator tasks = target.getTasks();
           while( tasks.hasNext() )
           {
               final Configuration task = (Configuration)tasks.next();
  -            executeTask( task );
  +            executeTask( task, context );
           }
       }
   
  -    protected void executeTask( final Configuration configuration )
  +    protected void executeTask( final Configuration configuration, 
  +                                final TaskletContext context )
           throws AntException
       {
           final String name = configuration.getName();
           m_logger.debug( "Executing task " + name );
   
  +        //Set up context for task...
  +        final TaskletContext taskletContext = context;
  +
  +        //is Only necessary if we are multi-threaded
  +        //final TaskletContext targetContext = new DefaultTaskletContext( context );
  +        taskletContext.setProperty( TaskletContext.NAME, name );
  +
  +        m_taskletEngine.contextualize( taskletContext );
  +
  +        //notify listeners
  +        m_listenerSupport.taskletStarted( name );
  +
  +        //run task
           m_taskletEngine.execute( configuration );
  +
  +        //notify listeners task has ended
  +        m_listenerSupport.taskletFinished();
       }
   }
  
  
  
  1.2       +13 -15    jakarta-ant/proposal/myrmidon/src/java/org/apache/ant/project/DefaultProjectListener.java
  
  Index: DefaultProjectListener.java
  ===================================================================
  RCS file: /home/cvs/jakarta-ant/proposal/myrmidon/src/java/org/apache/ant/project/DefaultProjectListener.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- DefaultProjectListener.java	2000/12/04 13:37:30	1.1
  +++ DefaultProjectListener.java	2000/12/05 09:21:48	1.2
  @@ -7,25 +7,13 @@
    */
   package org.apache.ant.project;
   
  -import org.apache.log.format.PatternFormatter;
  -import org.apache.log.output.DefaultOutputLogTarget;
  +import org.apache.avalon.util.StringUtil;
   
   public class DefaultProjectListener
  -    extends DefaultOutputLogTarget
       implements ProjectListener
   {
       protected String        m_prefix;
   
  -    /**
  -     * Initialize the default pattern.
  -     */
  -    protected void initPattern()
  -    {
  -        final PatternFormatter formatrer = new PatternFormatter();
  -        formatrer.setFormat( "%{message}\\n%{throwable}" );
  -        m_formatter = formatrer;
  -    }
  -
       public void projectStarted( final String projectName )
       {
           output( "Starting project " + projectName + "\n" );
  @@ -54,9 +42,19 @@
           m_prefix = null;
       }
   
  +    public void log( String message )
  +    {
  +        output( message );
  +    }
  +
  +    public void log( String message, Throwable throwable )
  +    {
  +        output( message + "\n" + StringUtil.printStackTrace( throwable, 5, true ) );
  +    }
  +
       protected void output( final String data )
       {
  -        if( null != m_prefix ) super.output( "[" + m_prefix + "] " + data );
  -        else super.output( data );
  +        if( null != m_prefix ) System.out.println( "\t[" + m_prefix + "] " + data );
  +        else System.out.println( data );
       }
   }
  
  
  
  1.2       +2 -0      jakarta-ant/proposal/myrmidon/src/java/org/apache/ant/project/Project.java
  
  Index: Project.java
  ===================================================================
  RCS file: /home/cvs/jakarta-ant/proposal/myrmidon/src/java/org/apache/ant/project/Project.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- Project.java	2000/12/04 13:37:30	1.1
  +++ Project.java	2000/12/05 09:21:48	1.2
  @@ -10,8 +10,10 @@
   import java.util.Iterator;
   import org.apache.ant.AntException;
   import org.apache.ant.tasklet.TaskletContext;
  +import org.apache.avalon.Component;
   
   public interface Project
  +    extends Component
   {
       // the name of currently executing project
       String PROJECT          = "ant.project.name"; 
  
  
  
  1.2       +7 -0      jakarta-ant/proposal/myrmidon/src/java/org/apache/ant/project/ProjectEngine.java
  
  Index: ProjectEngine.java
  ===================================================================
  RCS file: /home/cvs/jakarta-ant/proposal/myrmidon/src/java/org/apache/ant/project/ProjectEngine.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- ProjectEngine.java	2000/12/04 13:37:30	1.1
  +++ ProjectEngine.java	2000/12/05 09:21:49	1.2
  @@ -8,14 +8,21 @@
   package org.apache.ant.project;
   
   import org.apache.ant.AntException;
  +import org.apache.ant.tasklet.TaskletContext;
  +import org.apache.avalon.Component;
   import org.apache.avalon.camelot.Deployer;
   import org.apache.avalon.camelot.Registry;
   import org.apache.log.Logger;
   
   public interface ProjectEngine
  +    extends Component
   {
       Deployer getDeployer();
  +    void addProjectListener( ProjectListener listener );
  +    void removeProjectListener( ProjectListener listener );
       void setLogger( Logger logger );
       void execute( Project project, String target )
  +        throws AntException;
  +    void execute( Project project, String target, TaskletContext context )
           throws AntException;
   }
  
  
  
  1.2       +3 -3      jakarta-ant/proposal/myrmidon/src/java/org/apache/ant/project/ProjectListener.java
  
  Index: ProjectListener.java
  ===================================================================
  RCS file: /home/cvs/jakarta-ant/proposal/myrmidon/src/java/org/apache/ant/project/ProjectListener.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- ProjectListener.java	2000/12/04 13:37:30	1.1
  +++ ProjectListener.java	2000/12/05 09:21:49	1.2
  @@ -7,10 +7,7 @@
    */
   package org.apache.ant.project;
   
  -import org.apache.log.LogTarget;
  -
   public interface ProjectListener
  -    extends LogTarget
   {
       void projectStarted( String projectName );
       void projectFinished();
  @@ -20,4 +17,7 @@
   
       void taskletStarted( String taskletName );
       void taskletFinished();
  +
  +    void log( String message );
  +    void log( String message, Throwable throwable );
   }
  
  
  
  1.2       +2 -0      jakarta-ant/proposal/myrmidon/src/java/org/apache/ant/project/Target.java
  
  Index: Target.java
  ===================================================================
  RCS file: /home/cvs/jakarta-ant/proposal/myrmidon/src/java/org/apache/ant/project/Target.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- Target.java	2000/12/04 13:37:30	1.1
  +++ Target.java	2000/12/05 09:21:49	1.2
  @@ -8,8 +8,10 @@
   package org.apache.ant.project;
   
   import java.util.Iterator;
  +import org.apache.avalon.Component;
   
   public interface Target
  +    extends Component
   {
       Iterator getDependencies();
       Iterator getTasks();
  
  
  
  1.1                  jakarta-ant/proposal/myrmidon/src/java/org/apache/ant/project/ProjectListenerSupport.java
  
  Index: ProjectListenerSupport.java
  ===================================================================
  /*
   * Copyright (C) The Apache Software Foundation. All rights reserved.
   *
   * This software is published under the terms of the Apache Software License
   * version 1.1, a copy of which has been included with this distribution in
   * the LICENSE file.
   */
  package org.apache.ant.project;
  
  public class ProjectListenerSupport
      implements ProjectListener
  {
      protected ProjectListener[]   m_listeners = new ProjectListener[ 0 ];
  
      public void addProjectListener( final ProjectListener listener )
      {
          final ProjectListener[] listeners = new ProjectListener[ m_listeners.length + 1 ];
          System.arraycopy( m_listeners, 0, listeners, 0, m_listeners.length );
          listeners[ m_listeners.length ] = listener;
          m_listeners = listeners;
      }
  
      public void removeProjectListener( final ProjectListener listener )
      {
          int found = -1;
  
          for( int i = 0; i < m_listeners.length; i++ )
          {
              if( listener == m_listeners[ i ] )
              {
                  found = i;
                  break;
              }
          }
  
          if( -1 == found ) return;
          
          final ProjectListener[] listeners = new ProjectListener[ m_listeners.length - 1 ];
          System.arraycopy( m_listeners, 0, listeners, 0, found );
  
          final int count = m_listeners.length - found - 1;
          System.arraycopy( m_listeners, found, listeners, found + 1, count );
  
          m_listeners = listeners;
      }
  
      public void projectStarted( final String projectName )
      {
          for( int i = 0; i < m_listeners.length; i++ )
          {
              m_listeners[ i ].projectStarted( projectName );
          }
      }
  
      public void projectFinished()
      {
          for( int i = 0; i < m_listeners.length; i++ )
          {
              m_listeners[ i ].projectFinished();
          }
      }
  
      public void targetStarted( String targetName )
      {
          for( int i = 0; i < m_listeners.length; i++ )
          {
              m_listeners[ i ].targetStarted( targetName );
          }
      }
  
      public void targetFinished()
      {
          for( int i = 0; i < m_listeners.length; i++ )
          {
              m_listeners[ i ].targetFinished();
          }
      }
  
      public void taskletStarted( String taskletName )
      {
          for( int i = 0; i < m_listeners.length; i++ )
          {
              m_listeners[ i ].taskletStarted( taskletName );
          }
      }
  
      public void taskletFinished()
      {
          for( int i = 0; i < m_listeners.length; i++ )
          {
              m_listeners[ i ].taskletFinished();
          }
      }
  
      public void log( String message )
      {
          for( int i = 0; i < m_listeners.length; i++ )
          {
              m_listeners[ i ].log( message );
          }
      }
  
      public void log( String message, Throwable throwable )
      {
          for( int i = 0; i < m_listeners.length; i++ )
          {
              m_listeners[ i ].log( message, throwable );
          }
      }
  }
  
  
  
  1.1                  jakarta-ant/proposal/myrmidon/src/java/org/apache/ant/project/ProjectToListenerAdapter.java
  
  Index: ProjectToListenerAdapter.java
  ===================================================================
  /*
   * Copyright (C) The Apache Software Foundation. All rights reserved.
   *
   * This software is published under the terms of the Apache Software License
   * version 1.1, a copy of which has been included with this distribution in
   * the LICENSE file.
   */
  package org.apache.ant.project;
  
  import org.apache.log.LogEntry;
  import org.apache.log.LogTarget;
  
  public class ProjectToListenerAdapter
      implements LogTarget
  {
  
      protected final ProjectListener    m_listener;
  
      public ProjectToListenerAdapter( final ProjectListener listener )
      {
          m_listener = listener;
      }
  
      /**
       * Process a log entry.
       *
       * @param entry the entry
       */
      public void processEntry( final LogEntry entry )
      {
          if( null == entry.getThrowable() )
          {
              m_listener.log( entry.getMessage() );
          }
          else
          {
              m_listener.log( entry.getMessage(), entry.getThrowable() );
          }
      }
  }
  
  
  
  1.2       +5 -1      jakarta-ant/proposal/myrmidon/src/java/org/apache/ant/tasklet/engine/DefaultTaskletEngine.java
  
  Index: DefaultTaskletEngine.java
  ===================================================================
  RCS file: /home/cvs/jakarta-ant/proposal/myrmidon/src/java/org/apache/ant/tasklet/engine/DefaultTaskletEngine.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- DefaultTaskletEngine.java	2000/12/04 13:37:31	1.1
  +++ DefaultTaskletEngine.java	2000/12/05 09:21:53	1.2
  @@ -40,10 +40,14 @@
       protected TaskletConfigurer    m_configurer;
       protected Logger               m_logger;
   
  +    public void setLogger( final Logger logger )
  +    {
  +        m_logger = logger;
  +    }
  +
       public void contextualize( final Context context )
       {
           m_context = (TaskletContext)context;
  -        m_logger = m_context.getLogger();
       }
   
       public void compose( final ComponentManager componentManager )
  
  
  
  1.2       +2 -0      jakarta-ant/proposal/myrmidon/src/java/org/apache/ant/tasklet/engine/TaskletEngine.java
  
  Index: TaskletEngine.java
  ===================================================================
  RCS file: /home/cvs/jakarta-ant/proposal/myrmidon/src/java/org/apache/ant/tasklet/engine/TaskletEngine.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- TaskletEngine.java	2000/12/04 13:37:31	1.1
  +++ TaskletEngine.java	2000/12/05 09:21:54	1.2
  @@ -11,10 +11,12 @@
   import org.apache.ant.configuration.Configuration;
   import org.apache.avalon.Composer;
   import org.apache.avalon.Contextualizable;
  +import org.apache.log.Logger;
    
   public interface TaskletEngine
       extends Contextualizable, Composer
   {
  +    void setLogger( Logger logger );
       void execute( final Configuration task )
           throws AntException;
   }
  
  
  
  1.2       +5 -0      jakarta-ant/proposal/myrmidon/src/java/org/apache/ant/tasklet/engine/TskDeployer.java
  
  Index: TskDeployer.java
  ===================================================================
  RCS file: /home/cvs/jakarta-ant/proposal/myrmidon/src/java/org/apache/ant/tasklet/engine/TskDeployer.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- TskDeployer.java	2000/12/04 13:37:31	1.1
  +++ TskDeployer.java	2000/12/05 09:21:54	1.2
  @@ -138,6 +138,9 @@
                                                  key + " due to " + re,
                                                  re );
               }
  +
  +            m_logger.debug( "Registered converter " + key + " that converts from " + 
  +                            source + " to " + destination );
           }
       }   
        
  @@ -158,6 +161,8 @@
                   throw new DeploymentException( "Error registering " + key + " due to " + re,
                                                  re );
               }
  +            
  +            m_logger.debug( "Registered tasklet " + key + " as " + value );
           }
       }
   
  
  
  
  1.2       +1 -1      jakarta-ant/proposal/myrmidon/src/java/org/apache/ant/tasks/core/ConfigurationTest.java
  
  Index: ConfigurationTest.java
  ===================================================================
  RCS file: /home/cvs/jakarta-ant/proposal/myrmidon/src/java/org/apache/ant/tasks/core/ConfigurationTest.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- ConfigurationTest.java	2000/12/04 13:37:32	1.1
  +++ ConfigurationTest.java	2000/12/05 09:21:56	1.2
  @@ -42,6 +42,6 @@
       public void run()
           throws AntException
       {
  -        getLogger().info( m_message );
  +        getLogger().warn( m_message );
       }
   }
  
  
  
  1.2       +1 -1      jakarta-ant/proposal/myrmidon/src/java/org/apache/ant/tasks/core/ContentTest.java
  
  Index: ContentTest.java
  ===================================================================
  RCS file: /home/cvs/jakarta-ant/proposal/myrmidon/src/java/org/apache/ant/tasks/core/ContentTest.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- ContentTest.java	2000/12/04 13:37:32	1.1
  +++ ContentTest.java	2000/12/05 09:21:57	1.2
  @@ -20,7 +20,7 @@
   {
       public void addContent( final Integer value )
       {
  -        getLogger().info( "Integer content: " + value );
  +        getLogger().warn( "Integer content: " + value );
       }
   
       /*
  
  
  
  1.2       +1 -1      jakarta-ant/proposal/myrmidon/src/java/org/apache/ant/tasks/core/Echo.java
  
  Index: Echo.java
  ===================================================================
  RCS file: /home/cvs/jakarta-ant/proposal/myrmidon/src/java/org/apache/ant/tasks/core/Echo.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- Echo.java	2000/12/04 13:37:32	1.1
  +++ Echo.java	2000/12/05 09:21:57	1.2
  @@ -28,6 +28,6 @@
       public void run()
           throws AntException
       {
  -        getLogger().info( m_message );
  +        getLogger().warn( m_message );
       }
   }
  
  
  
  1.2       +13 -13    jakarta-ant/proposal/myrmidon/src/java/org/apache/ant/tasks/core/PrimitiveTypesTest.java
  
  Index: PrimitiveTypesTest.java
  ===================================================================
  RCS file: /home/cvs/jakarta-ant/proposal/myrmidon/src/java/org/apache/ant/tasks/core/PrimitiveTypesTest.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- PrimitiveTypesTest.java	2000/12/04 13:37:32	1.1
  +++ PrimitiveTypesTest.java	2000/12/05 09:21:57	1.2
  @@ -20,67 +20,67 @@
   {
       public void setInteger( final Integer value )
       {
  -        getLogger().info( "setInteger( " + value + " );" );
  +        getLogger().warn( "setInteger( " + value + " );" );
       }
       
       public void setInteger2( final int value )
       {
  -        getLogger().info( "setInteger2( " + value + " );" );
  +        getLogger().warn( "setInteger2( " + value + " );" );
       }
   
       public void setShort( final Short value )
       {
  -        getLogger().info( "setShort( " + value + " );" );
  +        getLogger().warn( "setShort( " + value + " );" );
       }
       
       public void setShort2( final short value )
       {
  -        getLogger().info( "setShort2( " + value + " );" );
  +        getLogger().warn( "setShort2( " + value + " );" );
       }
   
       public void setByte( final Byte value )
       {
  -        getLogger().info( "setByte( " + value + " );" );
  +        getLogger().warn( "setByte( " + value + " );" );
       }
       
       public void setByte2( final byte value )
       {
  -        getLogger().info( "setByte2( " + value + " );" );
  +        getLogger().warn( "setByte2( " + value + " );" );
       }
   
       public void setLong( final Long value )
       {
  -        getLogger().info( "setLong( " + value + " );" );
  +        getLogger().warn( "setLong( " + value + " );" );
       }
       
       public void setLong2( final long value )
       {
  -        getLogger().info( "setLong2( " + value + " );" );
  +        getLogger().warn( "setLong2( " + value + " );" );
       }
       
       public void setFloat( final Float value )
       {
  -        getLogger().info( "setFloat( " + value + " );" );
  +        getLogger().warn( "setFloat( " + value + " );" );
       }
       
       public void setFloat2( final float value )
       {
  -        getLogger().info( "setFloat2( " + value + " );" );
  +        getLogger().warn( "setFloat2( " + value + " );" );
       }
       
       public void setDouble( final Double value )
       {
  -        getLogger().info( "setDouble( " + value + " );" );
  +        getLogger().warn( "setDouble( " + value + " );" );
       }
       
       public void setDouble2( final double value )
       {
  -        getLogger().info( "setDouble2( " + value + " );" );
  +        getLogger().warn( "setDouble2( " + value + " );" );
       }
   
       public void setString( final String value )
       {
  -        getLogger().info( "setString( " + value + " );" );
  +        getLogger().warn( "setString( " + value + " );" );
       }
   
       public void run()
  
  
  
  1.2       +3 -1      jakarta-ant/proposal/myrmidon/src/java/org/apache/ant/tasks/core/taskdefs.properties
  
  Index: taskdefs.properties
  ===================================================================
  RCS file: /home/cvs/jakarta-ant/proposal/myrmidon/src/java/org/apache/ant/tasks/core/taskdefs.properties,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- taskdefs.properties	2000/12/04 13:37:32	1.1
  +++ taskdefs.properties	2000/12/05 09:21:58	1.2
  @@ -4,4 +4,6 @@
   sub-elements-test=org.apache.ant.tasks.core.SubElementTest
   conf-test=org.apache.ant.tasks.core.ConfigurationTest
   content-test=org.apache.ant.tasks.core.ContentTest
  -property=org.apache.ant.tasks.core.Property
  \ No newline at end of file
  +property=org.apache.ant.tasks.core.Property
  +register-tasklet=org.apache.ant.tasks.core.RegisterTasklet
  +ant-call=org.apache.ant.tasks.core.AntCall
  \ No newline at end of file
  
  
  
  1.1                  jakarta-ant/proposal/myrmidon/src/java/org/apache/ant/tasks/core/AntCall.java
  
  Index: AntCall.java
  ===================================================================
  /*
   * Copyright (C) The Apache Software Foundation. All rights reserved.
   *
   * This software is published under the terms of the Apache Software License
   * version 1.1, a copy of which has been included with this distribution in
   * the LICENSE file.
   */
  package org.apache.ant.tasks.core;
  
  import java.util.ArrayList;
  import org.apache.ant.AntException;
  import org.apache.ant.project.ProjectEngine;
  import org.apache.ant.project.Project;
  import org.apache.ant.tasklet.AbstractTasklet;
  import org.apache.ant.tasklet.DefaultTaskletContext;
  import org.apache.ant.tasklet.TaskletContext;
  import org.apache.avalon.ComponentManager;
  import org.apache.avalon.ComponentNotAccessibleException;
  import org.apache.avalon.ComponentNotFoundException;
  import org.apache.avalon.Composer;
  
  /**
   * This is abstract base class for tasklets.
   *
   * @author <a href="mailto:donaldp@apache.org">Peter Donald</a>
   */
  public class AntCall 
      extends AbstractTasklet
      implements Composer
  {
      protected ProjectEngine         m_projectEngine;
      protected Project               m_project;
      protected String                m_target;
      protected ArrayList             m_properties     = new ArrayList();
  
      public void compose( final ComponentManager componentManager )
          throws ComponentNotFoundException, ComponentNotAccessibleException
      {
          m_projectEngine = (ProjectEngine)componentManager.
              lookup( "org.apache.ant.project.ProjectEngine" );
          m_project = (Project)componentManager.lookup( "org.apache.ant.project.Project" );
      }
  
      public void setTarget( final String target )
      {
          m_target = target;
      }
  
      public Property createParam()
      {
          final Property property = new Property();
          m_properties.add( property );
          return property;
      }
  
      public void run()
          throws AntException
      {
          if( null == m_target )
          {
              throw new AntException( "Target attribute must be specified" );
          }
  
          final TaskletContext context = new DefaultTaskletContext( getContext() );
  
          final int size = m_properties.size();
          for( int i = 0; i < size; i++ )
          {
              final Property property = (Property)m_properties.get( i );
              property.contextualize( context );
              property.run();
          }
  
          getLogger().info( "Calling target " + m_target );
          m_projectEngine.execute( m_project, m_target, context );
      }
  }
  
  
  
  1.1                  jakarta-ant/proposal/myrmidon/src/java/org/apache/ant/tasks/core/RegisterTasklet.java
  
  Index: RegisterTasklet.java
  ===================================================================
  /*
   * Copyright (C) The Apache Software Foundation. All rights reserved.
   *
   * This software is published under the terms of the Apache Software License
   * version 1.1, a copy of which has been included with this distribution in
   * the LICENSE file.
   */
  package org.apache.ant.tasks.core;
  
  import java.io.File;
  import java.net.MalformedURLException;
  import java.net.URL;
  import org.apache.ant.AntException;
  import org.apache.ant.tasklet.AbstractTasklet;
  import org.apache.ant.tasklet.engine.DefaultTaskletInfo;
  import org.apache.ant.tasklet.engine.TaskletRegistry;
  import org.apache.avalon.ComponentManager;
  import org.apache.avalon.ComponentNotAccessibleException;
  import org.apache.avalon.ComponentNotFoundException;
  import org.apache.avalon.Composer;
  import org.apache.avalon.camelot.RegistryException;
  
  /**
   * Method to register a single tasklet.
   *
   * @author <a href="mailto:donaldp@apache.org">Peter Donald</a>
   */
  public class RegisterTasklet 
      extends AbstractTasklet
      implements Composer
  {
      protected TaskletRegistry     m_taskletRegistry;
      protected String              m_tasklib;
      protected String              m_taskName;
      protected String              m_classname;
  
      public void compose( final ComponentManager componentManager )
          throws ComponentNotFoundException, ComponentNotAccessibleException
      {
          m_taskletRegistry = (TaskletRegistry)componentManager.
              lookup( "org.apache.ant.tasklet.engine.TaskletRegistry" );
      }
  
      public void setTaskLib( final String tasklib )
      {
          m_tasklib = tasklib;
      }
      
      public void setTaskName( final String taskName )
      {
          m_taskName = taskName;
      }
      
      public void setClassname( final String classname )
      {
          m_classname = classname;
      }
  
      public void run()
          throws AntException
      {
          if( null == m_tasklib )
          {
              throw new AntException( "Must specify tasklib parameter" );
          }
  
          if( null == m_taskName )
          {
              throw new AntException( "Must specify taskname parameter" );            
          }
  
          if( null == m_classname )
          {
              m_classname = getDefaultClassName();
          }
          
          try
          {
              final File tasklib = new File( getContext().resolveFilename( m_tasklib ) );
              final URL url = tasklib.toURL();
              
              final DefaultTaskletInfo info = new DefaultTaskletInfo( m_classname, url );
          
              m_taskletRegistry.register( m_taskName, info ); 
          }
          catch( final MalformedURLException mue )
          {
              throw new AntException( "Malformed task-lib parameter " + m_tasklib, mue );
          }
          catch( final RegistryException re )
          {
              throw new AntException( "Error registering " + m_taskName + " due to " + re, re );
          }
      }
  
      protected String getDefaultClassName()
          throws AntException
      {
          //TODO:
          throw new AntException( "Not yet capable of automagically finding classname" );
      }
  }
  
  
  
  1.2       +10 -0     jakarta-ant/proposal/myrmidon/src/make/sample.xmk
  
  Index: sample.xmk
  ===================================================================
  RCS file: /home/cvs/jakarta-ant/proposal/myrmidon/src/make/sample.xmk,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- sample.xmk	2000/12/04 13:37:33	1.1
  +++ sample.xmk	2000/12/05 09:22:01	1.2
  @@ -58,7 +58,17 @@
       <property name="blah" value="fred" />
       <property name="${blah}" value="barney" />
   
  +    <register-tasklet task-lib="../../dist/lib/core.tsk" 
  +                      task-name="echo2" 
  +                      classname="org.apache.ant.tasks.core.Echo" />
  +
       <echo message="Doing the funky Echo with ${blah} ${fred} Year=${year}!"/>
  +    <echo2 message="Luke to Echo base. Can you hear me?"/>
  +
  +    <ant-call target="property-test2">
  +      <param name="blah" value="blah-value" />
  +    </ant-call>
  +
     </target>
   
     <target name="property-test2">
  
  
  
  1.1                  jakarta-ant/proposal/myrmidon/src/manifest/ant-manifest.mf
  
  Index: ant-manifest.mf
  ===================================================================
  Manifest-Version: 1.0
  Main-Class: org.apache.ant.launcher.AntLoader
  Created-By: Apache Ant Project
  
  
  1.1                  jakarta-ant/proposal/myrmidon/src/manifest/myrmidon-manifest.mf
  
  Index: myrmidon-manifest.mf
  ===================================================================
  Manifest-Version: 1.0
  Main-Class: org.apache.ant.Main
  Class-Path: avalonapi.jar 
  Created-By: Apache Ant Project
  
  
  1.2       +9 -22     jakarta-ant/proposal/myrmidon/src/script/ant
  
  Index: ant
  ===================================================================
  RCS file: /home/cvs/jakarta-ant/proposal/myrmidon/src/script/ant,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- ant	2000/12/04 13:37:33	1.1
  +++ ant	2000/12/05 09:22:04	1.2
  @@ -6,7 +6,6 @@
   
   # Cygwin support.
   if [ "$OSTYPE" == "cygwin32" ] || [ "$OSTYPE" = "cygwin" ]; then
  -
     if [ ! "$JAVA_HOME" = "" ]; then
       JAVA_HOME=`cygpath --path --unix $JAVA_HOME`
     fi
  @@ -27,32 +26,20 @@
   done
     
   ANT_HOME=`dirname "$PRG"`/..
  -
  -# Allow .antrc to specifiy flags to java cmd
  -if [ "$JAVACMD" = "" ] ; then 
  -  JAVACMD=java
  -fi
   
  -LOCALCLASSPATH=`echo $ANT_HOME/lib/*.jar | tr ' ' ':'`
  +if [ "$JAVA_HOME" == "" ] ; then
   
  -if [ "$CLASSPATH" != "" ] ; then
  -  LOCALCLASSPATH=$CLASSPATH:$LOCALCLASSPATH
  -fi
  -
  -if [ "$JAVA_HOME" != "" ] ; then
  -  if test -f $JAVA_HOME/lib/tools.jar ; then
  -    LOCALCLASSPATH=$LOCALCLASSPATH:$JAVA_HOME/lib/tools.jar
  -  fi
  -else
     echo "Warning: JAVA_HOME environment variable is not set."
     echo "  If build fails because sun.* classes could not be found"
     echo "  you will need to set the JAVA_HOME environment variable"
     echo "  to the installation directory of java."
  -fi
  -
  -# More Cygwin support
  -if [ "$OSTYPE" == "cygwin32" ] || [ "$OSTYPE" = "cygwin" ] ; then
  -  LOCALCLASSPATH=`cygpath --path --windows "$LOCALCLASSPATH"`
  +  if [ "$JAVACMD" = "" ] ; then 
  +    JAVACMD=java
  +  fi
  +else
  +  if [ "$JAVACMD" = "" ] ; then 
  +    JAVACMD=$JAVA_HOME/bin/java
  +  fi
   fi
   
  -$JAVACMD -classpath $LOCALCLASSPATH $ANT_OPTS org.apache.ant.Main --ant-home=${ANT_HOME} $@
  \ No newline at end of file
  +$JAVACMD $ANT_OPTS -jar ant.jar --ant-home=${ANT_HOME} $@
  \ No newline at end of file
  
  
  
  1.2       +16 -8     jakarta-ant/proposal/myrmidon/src/script/ant.bat
  
  Index: ant.bat
  ===================================================================
  RCS file: /home/cvs/jakarta-ant/proposal/myrmidon/src/script/ant.bat,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- ant.bat	2000/12/04 13:37:33	1.1
  +++ ant.bat	2000/12/05 09:22:04	1.2
  @@ -1,8 +1,8 @@
   @echo off
   
  -:checkJava
  -if "%JAVACMD%" == "" set JAVACMD=%JAVA_HOME%\bin\java
  -if not "%JAVA_HOME%" == "" goto setupClasspath
  +if exist "%HOME%\antrc_pre.bat" call "%HOME%\antrc_pre.bat"
  +
  +if not "%JAVA_HOME%" == "" goto javaCmdSetup
   
   echo.
   echo Warning: JAVA_HOME environment variable is not set.
  @@ -12,11 +12,17 @@
   echo.
   goto end
   
  -:setupClasspath
  -set LOCALCLASSPATH=lib\xerces.jar;lib\ant.jar;lib\avalonapi.jar;%JAVA_HOME%\lib\tools.jar
  +rem hope that there is java command in path
  +if "%JAVACMD%" == "" set JAVACMD=java
  +goto argSetup
   
  -set THIS_FILE=%0
  +rem if JAVA_HOME is set then make sure we use that java exe
  +:javaCmdSetup
  +if "%JAVACMD%" == "" set JAVACMD=%JAVA_HOME%\bin\java
  +
  +:argSetup
   
  +set THIS_FILE=%0
   set ANT_CMD_LINE_ARGS=
   
   rem Slurp all args...
  @@ -29,7 +35,9 @@
   :doneArgs
   rem Mmmmmm tasty - finished slurping args
   
  -%JAVACMD% -classpath "%LOCALCLASSPATH%" %ANT_OPTS% org.apache.ant.Main "--bin-dir=%THIS_FILE%" %ANT_CMD_LINE_ARGS%
  +%JAVACMD% %ANT_OPTS% -jar lib\ant.jar "--bin-dir=%THIS_FILE%" %ANT_CMD_LINE_ARGS%
   
   :end
  -set LOCALCLASSPATH=
  \ No newline at end of file
  +if exist "%HOME%\antrc_post.bat" call "%HOME%\antrc_post.bat"
  +set THIS_FILE=
  +set ANT_CMD_LINE_ARGS=
  \ No newline at end of file