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>