antoine     2003/04/21 13:03:53

  Modified:    proposal/sandbox/antlib/src/main/org/apache/tools/ant
                        Project.java antlib.xml opt-antlib.xml
               proposal/sandbox/antlib build.xml
  Removed:     proposal/sandbox/antlib/src/main/org/apache/tools/ant
                        ProjectHelper.java
  Log:
  make antlib work
  
  Revision  Changes    Path
  1.7       +209 -69   
ant/proposal/sandbox/antlib/src/main/org/apache/tools/ant/Project.java
  
  Index: Project.java
  ===================================================================
  RCS file: 
/home/cvs/ant/proposal/sandbox/antlib/src/main/org/apache/tools/ant/Project.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- Project.java      11 Apr 2003 13:54:47 -0000      1.6
  +++ Project.java      21 Apr 2003 20:03:52 -0000      1.7
  @@ -56,6 +56,7 @@
   import java.io.File;
   import java.io.InputStream;
   import java.io.IOException;
  +import java.io.EOFException;
   import java.util.Hashtable;
   import java.util.Vector;
   import java.util.Properties;
  @@ -266,6 +267,16 @@
       }
   
       /**
  +     * Get this project's input stream
  +     *
  +     * @return the InputStream instance in use by this Porject instance to
  +     * read input
  +     */
  +    public InputStream getDefaultInputStream() {
  +        return defaultInputStream;
  +    }
  +
  +    /**
        * Retrieves the current input handler.
        *
        * @return the InputHandler instance currently in place for the project
  @@ -277,6 +288,11 @@
   
       private FileUtils fileUtils;
   
  +    /**
  +     * Flag which catches Listeners which try to use System.out or System.err
  +     */
  +    private boolean loggingMessage = false;
  +
   
       /**
        *  <p>
  @@ -413,6 +429,7 @@
        */
       public void init() throws BuildException {
           setJavaVersionProperty();
  +        setSystemProperties();
           if (!isRoleDefined(TASK_ROLE)) {
               // Top project, need to load the core definitions
               loadDefinitions();
  @@ -452,7 +469,6 @@
               throw new BuildException("Can't load default datatype list");
           }
   
  -        setSystemProperties();
       }
   
   
  @@ -564,7 +580,7 @@
        [EMAIL PROTECTED]    The buildListeners value
        */
       public Vector getBuildListeners() {
  -        return listeners;
  +        return (Vector) listeners.clone();
       }
   
   
  @@ -697,6 +713,23 @@
           properties.put(name, value);
       }
   
  +    /**
  +     * Sets a user property, which cannot be overwritten by set/unset
  +     * property calls. Any previous value is overwritten. Also marks
  +     * these properties as properties that have not come from the
  +     * command line.
  +     *
  +     * @param name The name of property to set.
  +     *             Must not be <code>null</code>.
  +     * @param value The new value of the property.
  +     *              Must not be <code>null</code>.
  +     * @see #setProperty(String,String)
  +     */
  +    public synchronized void setInheritedProperty(String name, String value) 
{
  +        PropertyHelper ph = PropertyHelper.getPropertyHelper(this);
  +        ph.setInheritedProperty(null, name, value);
  +    }
  +
   
       /**
        *  Allows Project and subclasses to set a property unless its already
  @@ -796,6 +829,40 @@
           return propertiesCopy;
       }
   
  +    /**
  +     * Copies all user properties that have been set on the command
  +     * line or a GUI tool from this instance to the Project instance
  +     * given as the argument.
  +     *
  +     * <p>To copy all "user" properties, you will also have to call
  +     * [EMAIL PROTECTED] #copyInheritedProperties 
copyInheritedProperties}.</p>
  +     *
  +     * @param other the project to copy the properties to.  Must not be null.
  +     *
  +     * @since Ant 1.5
  +     */
  +    public void copyUserProperties(Project other) {
  +        PropertyHelper ph = PropertyHelper.getPropertyHelper(this);
  +        ph.copyUserProperties(other);
  +    }
  +
  +    /**
  +     * Copies all user properties that have not been set on the
  +     * command line or a GUI tool from this instance to the Project
  +     * instance given as the argument.
  +     *
  +     * <p>To copy all "user" properties, you will also have to call
  +     * [EMAIL PROTECTED] #copyUserProperties copyUserProperties}.</p>
  +     *
  +     * @param other the project to copy the properties to.  Must not be null.
  +     *
  +     * @since Ant 1.5
  +     */
  +    public void copyInheritedProperties(Project other) {
  +        PropertyHelper ph = PropertyHelper.getPropertyHelper(this);
  +        ph.copyInheritedProperties(other);
  +    }
  +
   
       /**
        *  set the default target of the project
  @@ -1205,7 +1272,7 @@
   
           try {
               Object o = f.create(this);
  -            // Do special book keeping for ProjectComponents
  +            setProjectReference( o );
               if (o instanceof ProjectComponent) {
                   ((ProjectComponent) o).setProject(this);
                   if (o instanceof Task) {
  @@ -1402,10 +1469,11 @@
           if (defaultInputStream != null) {
               return defaultInputStream.read(buffer, offset, length);
           } else {
  -            return System.in.read(buffer, offset, length);
  +            throw new EOFException("No input provided for project");
           }
       }
   
  +
       /**
        * Demux an input request to the correct task.
        *
  @@ -1949,26 +2017,30 @@
       }
   
       /**
  -     *  send build started event to the listeners
  +     * Sends a "build started" event to the build listeners for this project.
        */
  -    protected void fireBuildStarted() {
  +    public void fireBuildStarted() {
           BuildEvent event = new BuildEvent(this);
  -        for (int i = 0; i < listeners.size(); i++) {
  +        Vector listeners = getBuildListeners();
  +        int size = listeners.size();
  +        for (int i = 0; i < size; i++) {
               BuildListener listener = (BuildListener) listeners.elementAt(i);
               listener.buildStarted(event);
           }
       }
   
  -
       /**
  -     *  send build finished event to the listeners
  -     *
  -     [EMAIL PROTECTED]  exception  exception which indicates failure if not 
null
  +     * Sends a "build finished" event to the build listeners for this 
project.
  +     * @param exception an exception indicating a reason for a build
  +     *                  failure. May be <code>null</code>, indicating
  +     *                  a successful build.
        */
  -    protected void fireBuildFinished(Throwable exception) {
  +    public void fireBuildFinished(Throwable exception) {
           BuildEvent event = new BuildEvent(this);
           event.setException(exception);
  -        for (int i = 0; i < listeners.size(); i++) {
  +        Vector listeners = getBuildListeners();
  +        int size = listeners.size();
  +        for (int i = 0; i < size; i++) {
               BuildListener listener = (BuildListener) listeners.elementAt(i);
               listener.buildFinished(event);
           }
  @@ -1976,82 +2048,111 @@
   
   
       /**
  -     *  send target started event to the listeners
  +     * Sends a "target started" event to the build listeners for this 
project.
        *
  -     [EMAIL PROTECTED]  target  Description of the Parameter
  +     * @param target The target which is starting to build.
  +     *               Must not be <code>null</code>.
        */
       protected void fireTargetStarted(Target target) {
           BuildEvent event = new BuildEvent(target);
  -        for (int i = 0; i < listeners.size(); i++) {
  +        Vector listeners = getBuildListeners();
  +        int size = listeners.size();
  +        for (int i = 0; i < size; i++) {
               BuildListener listener = (BuildListener) listeners.elementAt(i);
               listener.targetStarted(event);
           }
       }
   
  -
       /**
  -     *  send build finished event to the listeners
  +     * Sends a "target finished" event to the build listeners for this
  +     * project.
        *
  -     [EMAIL PROTECTED]  exception  exception which indicates failure if not 
null
  -     [EMAIL PROTECTED]  target     Description of the Parameter
  +     * @param target    The target which has finished building.
  +     *                  Must not be <code>null</code>.
  +     * @param exception an exception indicating a reason for a build
  +     *                  failure. May be <code>null</code>, indicating
  +     *                  a successful build.
        */
       protected void fireTargetFinished(Target target, Throwable exception) {
           BuildEvent event = new BuildEvent(target);
           event.setException(exception);
  -        for (int i = 0; i < listeners.size(); i++) {
  +        Vector listeners = getBuildListeners();
  +        int size = listeners.size();
  +        for (int i = 0; i < size; i++) {
               BuildListener listener = (BuildListener) listeners.elementAt(i);
               listener.targetFinished(event);
           }
       }
   
  -
       /**
  -     *  Description of the Method
  +     * Sends a "task started" event to the build listeners for this project.
        *
  -     [EMAIL PROTECTED]  task  Description of the Parameter
  +     * @param task The target which is starting to execute.
  +     *               Must not be <code>null</code>.
        */
       protected void fireTaskStarted(Task task) {
           // register this as the current task on the current thread.
  -        threadTasks.put(Thread.currentThread(), task);
  +        registerThreadTask(Thread.currentThread(), task);
           BuildEvent event = new BuildEvent(task);
  -        for (int i = 0; i < listeners.size(); i++) {
  +        Vector listeners = getBuildListeners();
  +        int size = listeners.size();
  +        for (int i = 0; i < size; i++) {
               BuildListener listener = (BuildListener) listeners.elementAt(i);
               listener.taskStarted(event);
           }
       }
   
  -
       /**
  -     *  Description of the Method
  +     * Sends a "task finished" event to the build listeners for this
  +     * project.
        *
  -     [EMAIL PROTECTED]  task       Description of the Parameter
  -     [EMAIL PROTECTED]  exception  Description of the Parameter
  +     * @param task      The task which has finished executing.
  +     *                  Must not be <code>null</code>.
  +     * @param exception an exception indicating a reason for a build
  +     *                  failure. May be <code>null</code>, indicating
  +     *                  a successful build.
        */
       protected void fireTaskFinished(Task task, Throwable exception) {
  -        threadTasks.remove(Thread.currentThread());
  +        registerThreadTask(Thread.currentThread(), null);
           System.out.flush();
           System.err.flush();
           BuildEvent event = new BuildEvent(task);
           event.setException(exception);
  -        for (int i = 0; i < listeners.size(); i++) {
  +        Vector listeners = getBuildListeners();
  +        int size = listeners.size();
  +        for (int i = 0; i < size; i++) {
               BuildListener listener = (BuildListener) listeners.elementAt(i);
               listener.taskFinished(event);
           }
       }
   
  -
       /**
  -     *  Description of the Method
  +     * Sends a "message logged" event to the build listeners for this 
project.
        *
  -     [EMAIL PROTECTED]  event     Description of the Parameter
  -     [EMAIL PROTECTED]  message   Description of the Parameter
  -     [EMAIL PROTECTED]  priority  Description of the Parameter
  +     * @param event    The event to send. This should be built up with the
  +     *                 appropriate task/target/project by the caller, so that
  +     *                 this method can set the message and priority, then 
send
  +     *                 the event. Must not be <code>null</code>.
  +     * @param message  The message to send. Should not be <code>null</code>.
  +     * @param priority The priority of the message.
        */
  -    private void fireMessageLoggedEvent(BuildEvent event, String message, 
int priority) {
  +    private void fireMessageLoggedEvent(BuildEvent event, String message,
  +                                        int priority) {
           event.setMessage(message, priority);
  -        for (int i = 0; i < listeners.size(); i++) {
  -            BuildListener listener = (BuildListener) listeners.elementAt(i);
  -            listener.messageLogged(event);
  +        Vector listeners = getBuildListeners();
  +        synchronized (this) {
  +            if (loggingMessage) {
  +                throw new BuildException("Listener attempted to access "
  +                    + (priority == MSG_ERR ? "System.err" : "System.out")
  +                    + " - infinite loop terminated");
  +            }
  +            loggingMessage = true;
  +            int size = listeners.size();
  +            for (int i = 0; i < size; i++) {
  +                BuildListener listener = (BuildListener) 
listeners.elementAt(i);
  +                listener.messageLogged(event);
  +            }
  +            loggingMessage = false;
           }
       }
   
  @@ -2134,7 +2235,7 @@
       // Should move to a separate public class - and have API to add
       // listeners, etc.
       private static class AntRefTable extends Hashtable {
  -        Project project;
  +        private Project project;
           public AntRefTable(Project project) {
               super();
               this.project = project;
  @@ -2175,9 +2276,9 @@
       }
   
       private static class AntTaskTable extends LazyHashtable {
  -        Project project;
  -        Properties props;
  -        boolean tasks = false;
  +        private Project project;
  +        private Properties props;
  +        private boolean tasks = false;
   
           public AntTaskTable(Project p, boolean tasks) {
               this.project = p;
  @@ -2189,46 +2290,56 @@
           }
   
           protected void initAll() {
  -            if (initAllDone ) return;
  +            if (initAllDone) {
  +                return;
  +            }
               project.log("InitAll", Project.MSG_DEBUG);
  -            if (props==null ) return;
  +            if (props == null) {
  +                return;
  +            }
               Enumeration enum = props.propertyNames();
               while (enum.hasMoreElements()) {
                   String key = (String) enum.nextElement();
  -                Class taskClass=getTask( key );
  -                if (taskClass!=null ) {
  +                Class taskClass = getTask(key);
  +                if (taskClass != null) {
                       // This will call a get() and a put()
  -                    if (tasks )
  +                    if (tasks)
                           project.addTaskDefinition(key, taskClass);
                       else
                           project.addDataTypeDefinition(key, taskClass );
                   }
               }
  -            initAllDone=true;
  +            initAllDone = true;
           }
   
           protected Class getTask(String key) {
  -            if (props==null ) return null; // for tasks loaded before init()
  -            String value=props.getProperty(key);
  -            if (value==null) {
  -                //project.log( "No class name for " + key, 
Project.MSG_VERBOSE );
  +            if (props == null) {
  +                return null; // for tasks loaded before init()
  +            }
  +            String value = props.getProperty(key);
  +            if (value == null) {
  +                //project.log( "No class name for " + key, 
Project.MSG_VERBOSE);
                   return null;
               }
               try {
  -                Class taskClass=null;
  +                Class taskClass = null;
                   if (project.getCoreLoader() != null &&
                       
!("only".equals(project.getProperty("build.sysclasspath")))) {
                       try {
  -                        taskClass=project.getCoreLoader().loadClass(value);
  -                        if (taskClass != null ) return taskClass;
  -                    } catch( Exception ex ) {
  +                        taskClass = project.getCoreLoader().loadClass(value);
  +                        if (taskClass != null) {
  +                            return taskClass;
  +                        }
  +                    } catch (Exception ex) {
  +                        // ignore
                       }
                   }
                   taskClass = Class.forName(value);
                   return taskClass;
               } catch (NoClassDefFoundError ncdfe) {
                   project.log("Could not load a dependent class ("
  -                        + ncdfe.getMessage() + ") for task " + key, 
Project.MSG_DEBUG);
  +                        + ncdfe.getMessage() + ") for task "
  +                        + key, Project.MSG_DEBUG);
               } catch (ClassNotFoundException cnfe) {
                   project.log("Could not load class (" + value
                           + ") for task " + key, Project.MSG_DEBUG);
  @@ -2237,14 +2348,20 @@
           }
   
           // Hashtable implementation
  -        public Object get( Object key ) {
  -            Object orig=super.get( key );
  -            if (orig!= null ) return orig;
  -            if (! (key instanceof String) ) return null;
  -            project.log("Get task " + key, Project.MSG_DEBUG );
  -            Object taskClass=getTask( (String) key);
  -            if (taskClass != null)
  -                super.put( key, taskClass );
  +        public Object get(Object key) {
  +            Object orig = super.get(key);
  +            if (orig != null) {
  +                return orig;
  +            }
  +            if (!(key instanceof String)) {
  +                return null;
  +            }
  +
  +            project.log("Get task " + key, Project.MSG_DEBUG);
  +            Object taskClass = getTask((String) key);
  +            if (taskClass != null) {
  +                super.put(key, taskClass);
  +            }
               return taskClass;
           }
   
  @@ -2253,5 +2370,28 @@
           }
   
       }
  -
  +    /**
  +     * Set a reference to this Project on the parameterized object.
  +     * Need to set the project before other set/add elements
  +     * are called
  +     * @param obj the object to invoke setProject(this) on
  +     */
  +    public final void setProjectReference( final Object obj ) {
  +        if ( obj instanceof ProjectComponent ) {
  +            ( (ProjectComponent) obj ).setProject( this );
  +            return;
  +        }
  +        try {
  +            Method method =
  +                obj.getClass().getMethod(
  +                    "setProject", new Class[] {Project.class} );
  +            if ( method != null ) {
  +                method.invoke( obj, new Object[] { this } );
  +            }
  +        } catch (Throwable e) {
  +            // ignore this if the object does not have
  +            // a set project method or the method
  +            // is private/protected.
  +        }
  +    }
   }
  
  
  
  1.3       +36 -20    
ant/proposal/sandbox/antlib/src/main/org/apache/tools/ant/antlib.xml
  
  Index: antlib.xml
  ===================================================================
  RCS file: 
/home/cvs/ant/proposal/sandbox/antlib/src/main/org/apache/tools/ant/antlib.xml,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- antlib.xml        11 Apr 2003 13:54:47 -0000      1.2
  +++ antlib.xml        21 Apr 2003 20:03:53 -0000      1.3
  @@ -62,6 +62,7 @@
     <task name="jar" class="org.apache.tools.ant.taskdefs.Jar"/>
     <task name="rmic" class="org.apache.tools.ant.taskdefs.Rmic"/>
     <task name="cvs" class="org.apache.tools.ant.taskdefs.Cvs"/>
  +  <task name="get" class="org.apache.tools.ant.taskdefs.Get"/>
     <task name="unzip" class="org.apache.tools.ant.taskdefs.Expand"/>
     <task name="unjar" class="org.apache.tools.ant.taskdefs.Expand"/>
     <task name="unwar" class="org.apache.tools.ant.taskdefs.Expand"/>
  @@ -74,6 +75,7 @@
     <task name="java" class="org.apache.tools.ant.taskdefs.Java"/>
     <task name="tstamp" class="org.apache.tools.ant.taskdefs.Tstamp"/>
     <task name="property" class="org.apache.tools.ant.taskdefs.Property"/>
  +  <task name="xmlproperty" 
class="org.apache.tools.ant.taskdefs.XmlProperty"/>
     <task name="taskdef" class="org.apache.tools.ant.taskdefs.Taskdef"/>
     <task name="ant" class="org.apache.tools.ant.taskdefs.Ant"/>
     <task name="exec" class="org.apache.tools.ant.taskdefs.ExecTask"/>
  @@ -84,6 +86,7 @@
     <task name="fixcrlf" class="org.apache.tools.ant.taskdefs.FixCRLF"/>
     <task name="patch" class="org.apache.tools.ant.taskdefs.Patch"/>
     <task name="style" class="org.apache.tools.ant.taskdefs.XSLTProcess"/>
  +  <task name="xslt" class="org.apache.tools.ant.taskdefs.XSLTProcess"/>
     <task name="touch" class="org.apache.tools.ant.taskdefs.Touch"/>
     <task name="signjar" class="org.apache.tools.ant.taskdefs.SignJar"/>
     <task name="genkey" class="org.apache.tools.ant.taskdefs.GenerateKey"/>
  @@ -112,34 +115,47 @@
     <task name="waitfor" class="org.apache.tools.ant.taskdefs.WaitFor"/>
     <task name="input" class="org.apache.tools.ant.taskdefs.Input"/>
     <task name="loadfile" class="org.apache.tools.ant.taskdefs.LoadFile"/>
  -  <task name="manifest" class="org.apache.tools.ant.taskdefs.Manifest"/>
  +  <task name="manifest" class="org.apache.tools.ant.taskdefs.ManifestTask"/>
  +  <task name="loadproperties" 
class="org.apache.tools.ant.taskdefs.LoadProperties"/>
  +  <task name="basename" class="org.apache.tools.ant.taskdefs.Basename"/>
  +  <task name="dirname" class="org.apache.tools.ant.taskdefs.Dirname"/>
  +  <task name="cvschangelog" 
class="org.apache.tools.ant.taskdefs.cvslib.ChangeLogTask"/>
  +  <task name="buildnumber" 
class="org.apache.tools.ant.taskdefs.BuildNumber"/>
  +  <task name="concat" class="org.apache.tools.ant.taskdefs.Concat"/>
  +  <task name="cvstagdiff" 
class="org.apache.tools.ant.taskdefs.cvslib.CvsTagDiff"/>
  +  <task name="tempfile" class="org.apache.tools.ant.taskdefs.TempFile"/>
  +  <task name="classloader" 
class="org.apache.tools.ant.taskdefs.Classloader"/>
  +  <task name="import" class="org.apache.tools.ant.taskdefs.ImportTask"/>
  +  <task name="whichresource" 
class="org.apache.tools.ant.taskdefs.WhichResource"/>
  +  <task name="subant" class="org.apache.tools.ant.taskdefs.SubAnt"/>
  +  <task name="sync" class="org.apache.tools.ant.taskdefs.Sync"/>
     <task name="antjar" class="org.apache.tools.ant.taskdefs.Antjar"/>
     <task name="antlib" class="org.apache.tools.ant.taskdefs.Antlib"/>
   
  -  <data-type name="path" class="org.apache.tools.ant.types.Path"/>
  -  <data-type name="fileset" class="org.apache.tools.ant.types.FileSet"/>
  -  <data-type name="filelist" class="org.apache.tools.ant.types.FileList"/>
  -  <data-type name="patternset" 
class="org.apache.tools.ant.types.PatternSet"/>
  -  <data-type name="mapper" class="org.apache.tools.ant.types.Mapper"/>
  -  <data-type name="filterset" class="org.apache.tools.ant.types.FilterSet"/>
  -  <data-type name="filterchain" 
class="org.apache.tools.ant.types.FilterChain" />
  -  <data-type name="filterreader" 
class="org.apache.tools.ant.types.AntFilterReader" />
  -  <data-type name="description" 
class="org.apache.tools.ant.types.Description"/>
  -  <data-type name="substitution" 
class="org.apache.tools.ant.types.Substitution"/>
  -  <data-type name="regexp" 
class="org.apache.tools.ant.types.RegularExpression"/>
  -  <data-type name="selector" 
class="org.apache.tools.ant.types.selectors.SelectSelector"/>
  -  <data-type name="zipfileset" 
class="org.apache.tools.ant.types.ZipFileSet"/>
  -  <data-type name="xmlcatalog" class="org.apache.tools.ant.types.XMLCatalog" 
/>
  -  <data-type name="extensionSet" 
class="org.apache.tools.ant.taskdefs.optional.extension.ExtensionSet" />
  -  <data-type name="extension" 
class="org.apache.tools.ant.taskdefs.optional.extension.ExtensionAdapter" />
  -  <data-type name="libfileset" 
class="org.apache.tools.ant.taskdefs.optional.extension.LibFileSet" />
  -
     <!-- deprecated ant tasks (kept for back compatibility) -->
  -
     <task name="javadoc2" class="org.apache.tools.ant.taskdefs.Javadoc"/>
     <task name="copydir" class="org.apache.tools.ant.taskdefs.Copydir"/>
     <task name="copyfile" class="org.apache.tools.ant.taskdefs.Copyfile"/>
     <task name="deltree" class="org.apache.tools.ant.taskdefs.Deltree"/>
     <task name="rename" class="org.apache.tools.ant.taskdefs.Rename"/>
  +
  +  <data-type name="description" 
class="org.apache.tools.ant.types.Description"/>
  +  <data-type name="dirset" class="org.apache.tools.ant.types.DirSet"/>
  +  <data-type name="filelist" class="org.apache.tools.ant.types.FileList"/>
  +  <data-type name="fileset" class="org.apache.tools.ant.types.FileSet"/>
  +  <data-type name="filterchain" 
class="org.apache.tools.ant.types.FilterChain"/>
  +  <data-type name="filterreader" 
class="org.apache.tools.ant.types.AntFilterReader"/>
  +  <data-type name="filterset" class="org.apache.tools.ant.types.FilterSet"/>
  +  <data-type name="mapper" class="org.apache.tools.ant.types.Mapper"/>
  +  <data-type name="path" class="org.apache.tools.ant.types.Path"/>
  +  <data-type name="patternset" 
class="org.apache.tools.ant.types.PatternSet"/>
  +  <data-type name="regexp" 
class="org.apache.tools.ant.types.RegularExpression"/>
  +  <data-type name="substitution" 
class="org.apache.tools.ant.types.Substitution"/>
  +  <data-type name="xmlcatalog" 
class="org.apache.tools.ant.types.XMLCatalog"/>
  +  <data-type name="extensionSet" 
class="org.apache.tools.ant.taskdefs.optional.extension.ExtensionSet"/>
  +  <data-type name="extension" 
class="org.apache.tools.ant.taskdefs.optional.extension.ExtensionAdapter"/>
  +  <data-type name="libfileset" 
class="org.apache.tools.ant.taskdefs.optional.extension.LibFileSet"/>
  +  <data-type name="selector" 
class="org.apache.tools.ant.types.selectors.SelectSelector"/>
  +  <data-type name="zipfileset" 
class="org.apache.tools.ant.types.ZipFileSet"/>
   
   </antlib>
  
  
  
  1.2       +41 -8     
ant/proposal/sandbox/antlib/src/main/org/apache/tools/ant/opt-antlib.xml
  
  Index: opt-antlib.xml
  ===================================================================
  RCS file: 
/home/cvs/ant/proposal/sandbox/antlib/src/main/org/apache/tools/ant/opt-antlib.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- opt-antlib.xml    2 Mar 2002 22:21:43 -0000       1.1
  +++ opt-antlib.xml    21 Apr 2003 20:03:53 -0000      1.2
  @@ -55,6 +55,7 @@
   <antlib version="1.5" >
     <!-- Declaration of optional tasks -->
   
  +  <task name="image" 
class="org.apache.tools.ant.taskdefs.optional.image.Image"/>
     <task name="script" class="org.apache.tools.ant.taskdefs.optional.Script"/>
     <task name="netrexxc" 
class="org.apache.tools.ant.taskdefs.optional.NetRexxC"/>
     <task name="renameext" 
class="org.apache.tools.ant.taskdefs.optional.RenameExtensions"/>
  @@ -62,7 +63,14 @@
     <task name="ddcreator" 
class="org.apache.tools.ant.taskdefs.optional.ejb.DDCreator"/>
     <task name="wlrun" 
class="org.apache.tools.ant.taskdefs.optional.ejb.WLRun"/>
     <task name="wlstop" 
class="org.apache.tools.ant.taskdefs.optional.ejb.WLStop"/>
  +  <task name="vssadd" 
class="org.apache.tools.ant.taskdefs.optional.vss.MSVSSADD"/>
  +  <task name="vsscheckin" 
class="org.apache.tools.ant.taskdefs.optional.vss.MSVSSCHECKIN"/>
  +  <task name="vsscheckout" 
class="org.apache.tools.ant.taskdefs.optional.vss.MSVSSCHECKOUT"/>
  +  <task name="vsscp" 
class="org.apache.tools.ant.taskdefs.optional.vss.MSVSSCP"/>
  +  <task name="vsscreate" 
class="org.apache.tools.ant.taskdefs.optional.vss.MSVSSCREATE"/>
     <task name="vssget" 
class="org.apache.tools.ant.taskdefs.optional.vss.MSVSSGET"/>
  +  <task name="vsshistory" 
class="org.apache.tools.ant.taskdefs.optional.vss.MSVSSHISTORY"/>
  +  <task name="vsslabel" 
class="org.apache.tools.ant.taskdefs.optional.vss.MSVSSLABEL"/>
     <task name="ejbjar" 
class="org.apache.tools.ant.taskdefs.optional.ejb.EjbJar"/>
     <task name="mparse" 
class="org.apache.tools.ant.taskdefs.optional.metamata.MParse"/>
     <task name="mmetrics" 
class="org.apache.tools.ant.taskdefs.optional.metamata.MMetrics"/>
  @@ -89,31 +97,42 @@
     <task name="telnet" 
class="org.apache.tools.ant.taskdefs.optional.net.TelnetTask"/>
     <task name="csc" 
class="org.apache.tools.ant.taskdefs.optional.dotnet.CSharp"/>
     <task name="ilasm" 
class="org.apache.tools.ant.taskdefs.optional.dotnet.Ilasm"/>
  +  <task name="WsdlToDotnet" 
class="org.apache.tools.ant.taskdefs.optional.dotnet.WsdlToDotnet"/>
  +  <task name="wsdltodotnet" 
class="org.apache.tools.ant.taskdefs.optional.dotnet.WsdlToDotnet"/>
     <task name="stylebook" 
class="org.apache.tools.ant.taskdefs.optional.StyleBook"/>
     <task name="test" class="org.apache.tools.ant.taskdefs.optional.Test"/>
     <task name="pvcs" 
class="org.apache.tools.ant.taskdefs.optional.pvcs.Pvcs"/>
     <task name="p4change" 
class="org.apache.tools.ant.taskdefs.optional.perforce.P4Change"/>
  +  <task name="p4delete" 
class="org.apache.tools.ant.taskdefs.optional.perforce.P4Delete"/>
     <task name="p4label" 
class="org.apache.tools.ant.taskdefs.optional.perforce.P4Label"/>
  +  <task name="p4labelsync" 
class="org.apache.tools.ant.taskdefs.optional.perforce.P4Labelsync"/>
     <task name="p4have" 
class="org.apache.tools.ant.taskdefs.optional.perforce.P4Have"/>
     <task name="p4sync" 
class="org.apache.tools.ant.taskdefs.optional.perforce.P4Sync"/>
     <task name="p4edit" 
class="org.apache.tools.ant.taskdefs.optional.perforce.P4Edit"/>
  +  <task name="p4integrate" 
class="org.apache.tools.ant.taskdefs.optional.perforce.P4Integrate"/>
  +  <task name="p4resolve" 
class="org.apache.tools.ant.taskdefs.optional.perforce.P4Resolve"/>
     <task name="p4submit" 
class="org.apache.tools.ant.taskdefs.optional.perforce.P4Submit"/>
     <task name="p4counter" 
class="org.apache.tools.ant.taskdefs.optional.perforce.P4Counter"/>
  +  <task name="p4revert" 
class="org.apache.tools.ant.taskdefs.optional.perforce.P4Revert"/>
  +  <task name="p4reopen" 
class="org.apache.tools.ant.taskdefs.optional.perforce.P4Reopen"/>
  +  <task name="p4fstat" 
class="org.apache.tools.ant.taskdefs.optional.perforce.P4Fstat"/>
     <task name="javah" class="org.apache.tools.ant.taskdefs.optional.Javah"/>
     <task name="ccupdate" 
class="org.apache.tools.ant.taskdefs.optional.clearcase.CCUpdate"/>
     <task name="cccheckout" 
class="org.apache.tools.ant.taskdefs.optional.clearcase.CCCheckout"/>
     <task name="cccheckin" 
class="org.apache.tools.ant.taskdefs.optional.clearcase.CCCheckin"/>
     <task name="ccuncheckout" 
class="org.apache.tools.ant.taskdefs.optional.clearcase.CCUnCheckout"/>
  +  <task name="ccmklbtype" 
class="org.apache.tools.ant.taskdefs.optional.clearcase.CCMklbtype"/>
  +  <task name="ccmklabel" 
class="org.apache.tools.ant.taskdefs.optional.clearcase.CCMklabel"/>
  +  <task name="ccrmtype" 
class="org.apache.tools.ant.taskdefs.optional.clearcase.CCRmtype"/>
  +  <task name="cclock" 
class="org.apache.tools.ant.taskdefs.optional.clearcase.CCLock"/>
  +  <task name="ccunlock" 
class="org.apache.tools.ant.taskdefs.optional.clearcase.CCUnlock"/>
  +  <task name="ccmkbl" 
class="org.apache.tools.ant.taskdefs.optional.clearcase.CCMkbl"/>
     <task name="sound" 
class="org.apache.tools.ant.taskdefs.optional.sound.SoundTask"/>
     <task name="junitreport" 
class="org.apache.tools.ant.taskdefs.optional.junit.XMLResultAggregator"/>
  -  <task name="vsslabel" 
class="org.apache.tools.ant.taskdefs.optional.vss.MSVSSLABEL"/>
  -  <task name="vsshistory" 
class="org.apache.tools.ant.taskdefs.optional.vss.MSVSSHISTORY"/>
     <task name="blgenclient" 
class="org.apache.tools.ant.taskdefs.optional.ejb.BorlandGenerateClient"/>
     <task name="rpm" class="org.apache.tools.ant.taskdefs.optional.Rpm"/>
     <task name="xmlvalidate" 
class="org.apache.tools.ant.taskdefs.optional.XMLValidateTask"/>
  -  <task name="vsscheckin" 
class="org.apache.tools.ant.taskdefs.optional.vss.MSVSSCHECKIN"/>
  -  <task name="vsscheckout" 
class="org.apache.tools.ant.taskdefs.optional.vss.MSVSSCHECKOUT"/>
  -  <task name="iplanet" 
class="ejbc=org.apache.tools.ant.taskdefs.optional.ejb.IPlanetEjbcTask"/>
  +  <task name="iplanet-ejbc" 
class="org.apache.tools.ant.taskdefs.optional.ejb.IPlanetEjbcTask"/>
     <task name="jdepend" 
class="org.apache.tools.ant.taskdefs.optional.jdepend.JDependTask"/>
     <task name="mimemail" 
class="org.apache.tools.ant.taskdefs.optional.net.MimeMail"/>
     <task name="ccmcheckin" 
class="org.apache.tools.ant.taskdefs.optional.ccm.CCMCheckin"/>
  @@ -133,12 +152,26 @@
     <task name="soscheckout" 
class="org.apache.tools.ant.taskdefs.optional.sos.SOSCheckout"/>
     <task name="soslabel" 
class="org.apache.tools.ant.taskdefs.optional.sos.SOSLabel"/>
     <task name="echoproperties" 
class="org.apache.tools.ant.taskdefs.optional.EchoProperties"/>
  +  <task name="splash" 
class="org.apache.tools.ant.taskdefs.optional.splash.SplashTask"/>
  +  <task name="serverdeploy" 
class="org.apache.tools.ant.taskdefs.optional.j2ee.ServerDeploy"/>
  +  <task name="jarlib-display" 
class="org.apache.tools.ant.taskdefs.optional.extension.JarLibDisplayTask"/>
  +  <task name="jarlib-manifest" 
class="org.apache.tools.ant.taskdefs.optional.extension.JarLibManifestTask"/>
  +  <task name="jarlib-available" 
class="org.apache.tools.ant.taskdefs.optional.extension.JarLibAvailableTask"/>
  +  <task name="jarlib-resolve" 
class="org.apache.tools.ant.taskdefs.optional.extension.JarLibResolveTask"/>
  +  <task name="setproxy" 
class="org.apache.tools.ant.taskdefs.optional.net.SetProxy"/>
  +  <task name="vbc" 
class="org.apache.tools.ant.taskdefs.optional.dotnet.VisualBasicCompile"/>
  +  <task name="symlink" 
class="org.apache.tools.ant.taskdefs.optional.unix.Symlink"/>
  +  <task name="chgrp" 
class="org.apache.tools.ant.taskdefs.optional.unix.Chgrp"/>
  +  <task name="chown" 
class="org.apache.tools.ant.taskdefs.optional.unix.Chown"/>
  +  <task name="attrib" 
class="org.apache.tools.ant.taskdefs.optional.windows.Attrib"/>
  +  <task name="scp" class="org.apache.tools.ant.taskdefs.optional.ssh.Scp"/>
  +  <task name="sshexec" 
class="org.apache.tools.ant.taskdefs.optional.ssh.SSHExec"/>
  +  <task name="jsharpc" 
class="org.apache.tools.ant.taskdefs.optional.dotnet.JSharp"/>
   
  -  <!-- I have no idea why this task is here -->
  -
  -  <task name="get" class="org.apache.tools.ant.taskdefs.Get"/>
  +  <!-- datatypes -->
   
     <data-type name="classfileset" 
class="org.apache.tools.ant.types.optional.depend.ClassfileSet"/>
  +  <data-type name="scriptfilter" 
class="org.apache.tools.ant.types.optional.ScriptFilter"/>
   
     <!-- deprecated ant tasks (kept for back compatibility) -->
   
  
  
  
  1.5       +0 -2      ant/proposal/sandbox/antlib/build.xml
  
  Index: build.xml
  ===================================================================
  RCS file: /home/cvs/ant/proposal/sandbox/antlib/build.xml,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- build.xml 3 Mar 2002 12:37:33 -0000       1.4
  +++ build.xml 21 Apr 2003 20:03:53 -0000      1.5
  @@ -20,8 +20,6 @@
         <fileset dir='${orig-classes}'>
           <include name='**' />
           <exclude name='org/apache/tools/ant/Project.class' />
  -        <exclude name='org/apache/tools/ant/ProjectHelper.class' />
  -        <exclude name='org/apache/tools/ant/IntrospectionHelper.class' />
           <exclude name='org/apache/tools/ant/TaskAdapter.class' />
           <exclude name='org/apache/tools/ant/taskdefs/Ant.class' />
         </fileset>
  
  
  

Reply via email to