- Changed build.xml to create *.tsk-files (which is currently the extension I choose for ant-extension-files) for some of the currently-core tasks and all of the optional tasks - Changed Project.java to load Task-Information from the ext-subdirectory of ant.home (using AntExtensionHelper) - All calls to project.addTaskDefinition have been changed to create a new TaskDefinition in-place and use this to add the TaskDefinition (Project.java, Taskdef.java, Ant.java, CallTarget.java) - Changed Main and added an option to print the currently know tasks (-tasks) - Uncommented several tasks in taskdefs/default.properties (all optional and deprecated and some of the currently-core tasks (which I personally don't think are "really" core). Deprecated tasks will no longer be included in the task-list, optional-tasks will get some separate files (vss.tsk, script.tsk, ...) and all tasks formerly included in ant.jar and now removed from default.properties are in core.tsk. - Added a task TaskLib which creates the tsk-files (although one could use jar directly, but would not have the simple error-checking)
I don't think this is complete (or how one would call it), but it worked for me (and my buildfile) and it's a starting-point. What do you think of it? Nico
Index: build.xml
===================================================================
RCS file: /home/cvspublic/jakarta-ant/build.xml,v
retrieving revision 1.83
diff -u -r1.83 build.xml
--- build.xml 2000/10/13 13:15:39 1.83
+++ build.xml 2000/10/14 18:21:13
@@ -21,6 +21,7 @@
<property name="docs.dir" value="docs"/>
<property name="build.dir" value="../build/ant"/>
<property name="lib.dir" value="${build.dir}/lib"/>
+ <property name="ext.dir" value="${build.dir}/ext"/>
<property name="bin.dir" value="${build.dir}/bin"/>
<property name="build.classes" value="${build.dir}/classes"/>
<property name="build.javadocs" value="${build.dir}/javadocs"/>
@@ -127,6 +128,7 @@
<jar jarfile="${lib.dir}/${name}.jar"
basedir="${build.classes}"
includes="org/**"
+ excludes="org/apache/tools/ant/taskdefs/optional/**"
manifest="${manifest}"
/>
</target>
@@ -225,7 +227,7 @@
<!-- =================================================================== -->
<!-- Installs the ant.jar library and binary files into ant.home -->
<!-- =================================================================== -->
- <target name="bootstrap" depends="main" description="Installs the ant.jar
library and binary files into ant.home">
+ <target name="bootstrap"
depends="main,build.core.tasks,build.optional.tasks" description="Installs the
ant.jar library and binary files into ant.home">
<echo message="copying bootstrapped files into bin and lib"/>
<copy todir="lib">
<fileset dir="${lib.dir}"/>
@@ -233,6 +235,9 @@
<copy todir="bin">
<fileset dir="${bin.dir}"/>
</copy>
+ <copy todir="ext">
+ <fileset dir="${ext.dir}"/>
+ </copy>
</target>
<target name="install" depends="dist" if="ant.install">
@@ -259,6 +264,9 @@
<copy todir="${ant.install}/bin">
<fileset dir="${bin.dir}"/>
</copy>
+ <copy todir="${ant.install}/ext">
+ <fileset dir="${ext.dir}"/>
+ </copy>
<chmod perm="+x">
<fileset dir="${ant.install}/bin">
<patternset refid="chmod.patterns"/>
@@ -366,5 +374,231 @@
</junit>
</target>
+ <!-- =================================================================== -->
+ <!-- Creates the extension packages (core) -->
+ <!-- =================================================================== -->
+ <target name="build.core.tasks" depends="main">
+
+ <mkdir dir="${ext.dir}"/>
+
+ <tasklib name="core" version="${version}"
+ home="http://jakarta.apache.org/ant/"
+ jarfile="${ext.dir}/core.tsk">
+ <task name="rmic" version="1.0"
+ classname="org.apache.tools.ant.taskdefs.Rmic"
+ description="Generates RMI-Stubs and Skeletons"/>
+ <task name="war" version="1.0"
+ classname="org.apache.tools.ant.taskdefs.War"
+ description="Creates a war-archive"/>
+ <task name="unwar" version="1.0"
+ classname="org.apache.tools.ant.taskdefs.Expand"
+ description="Expands a war-archive"/>
+ <task name="patch" version="1.0"
+ classname="org.apache.tools.ant.taskdefs.Patch"
+ description="Applies a patch"/>
+ <task name="style" version="1.0"
+ classname="org.apache.tools.ant.taskdefs.XSLTProcess"
+ description="??"/>
+ <task name="signjar" version="1.0"
+ classname="org.apache.tools.ant.taskdefs.SignJar"
+ description="Signs a jar-file"/>
+ <task name="genkey" version="1.0"
+ classname="org.apache.tools.ant.taskdefs.GenerateKey"
+ description="Generates a new Key"/>
+ <task name="antstrucure" version="1.0"
+ classname="org.apache.tools.ant.taskdefs.AntStructure"
+ description="Generates a DTD for currently known tasks and types"/>
+ <task name="sql" version="1.0"
+ classname="org.apache.tools.ant.taskdefs.SQLExec"
+ description="Executes SQL-Statements"/>
+ <task name="mail" version="1.0"
+ classname="org.apache.tools.ant.taskdefs.SendEmail"
+ description="Sends an eMail"/>
+ <task name="tasklib" version="1.0"
+ classname="org.apache.tools.ant.taskdefs.TaskLib"
+ description="Creates a new Ant-Extension-Library"/>
+ <fileset dir="${build.classes}">
+ <include name="org/apache/tools/ant/taskdefs/*.class"/>
+ </fileset>
+ </tasklib>
+ </target>
+
+
+ <!-- =================================================================== -->
+ <!-- Creates the extension packages (optional) -->
+ <!-- =================================================================== -->
+ <target name="build.optional.tasks" depends="main">
+
+ <mkdir dir="${ext.dir}"/>
+
+ <tasklib name="vss" version="${version}"
+ home="http://jakarta.apache.org/ant/optional.html"
+ jarfile="${ext.dir}/vss.tsk">
+ <task name="vssget" version="1.0"
+ classname="org.apache.tools.ant.taskdefs.optional.vss.MSVSSGET"/>
+ <task name="vssco" version="1.0"
+
classname="org.apache.tools.ant.taskdefs.optional.vss.MSVSSCheckOut"/>
+ <task name="vssdiff" version="1.0"
+
classname="org.apache.tools.ant.taskdefs.optional.vss.MSVSSDiffProject"/>
+ <task name="vsshistory" version="1.0"
+
classname="org.apache.tools.ant.taskdefs.optional.vss.MSVSSHistory"/>
+ <task name="vsslabel" version="1.0"
+ classname="org.apache.tools.ant.taskdefs.optional.vss.MSVSSLabel"/>
+ <fileset dir="${build.classes}">
+ <include name="org/apache/tools/ant/taskdefs/optional/vss/*.class"/>
+ </fileset>
+ </tasklib>
+
+ <tasklib name="script" version="${version}"
+ home="http://jakarta.apache.org/ant/optional.html"
+ jarfile="${ext.dir}/script.tsk">
+ <task name="script" version="1.0"
+ classname="org.apache.tools.ant.taskdefs.optional.Script"/>
+ <fileset dir="${build.classes}">
+ <include name="org/apache/tools/ant/taskdefs/optional/Script.class"/>
+ </fileset>
+ </tasklib>
+
+ <tasklib name="junit" version="${version}"
+ home="http://jakarta.apache.org/ant/optional.html"
+ jarfile="${ext.dir}/junit.tsk">
+ <task name="junit" version="1.0"
+
classname="org.apache.tools.ant.taskdefs.optional.junit.JUnitTask"/>
+ <fileset dir="${build.classes}">
+ <include name="org/apache/tools/ant/taskdefs/optional/junit/*.class"/>
+ </fileset>
+ </tasklib>
+
+ <tasklib name="netrexxc" version="${version}"
+ home="http://jakarta.apache.org/ant/optional.html"
+ jarfile="${ext.dir}/netrexxc.tsk">
+ <task name="netrexxc" version="1.0"
+ classname="org.apache.tools.ant.taskdefs.optional.NetRexxC"/>
+ <fileset dir="${build.classes}">
+ <include name="org/apache/tools/ant/taskdefs/optional/NetRexxC.class"/>
+ </fileset>
+ </tasklib>
+
+ <tasklib name="renameext" version="${version}"
+ home="http://jakarta.apache.org/ant/optional.html"
+ jarfile="${ext.dir}/renameext.tsk">
+ <task name="netrexxc" version="1.0"
+
classname="org.apache.tools.ant.taskdefs.optional.RenameExtensions"/>
+ <fileset dir="${build.classes}">
+ <include
name="org/apache/tools/ant/taskdefs/optional/RenameExtensions.class"/>
+ </fileset>
+ </tasklib>
+
+ <tasklib name="ejb" version="${version}"
+ home="http://jakarta.apache.org/ant/optional.html"
+ jarfile="${ext.dir}/ejb.tsk">
+ <task name="ejbc" version="1.0"
+ classname="org.apache.tools.ant.taskdefs.optional.ejb.Ejbc"/>
+ <task name="ddcreator" version="1.0"
+ classname="org.apache.tools.ant.taskdefs.optional.ejb.DDCreator"/>
+ <task name="wlrun" version="1.0"
+ classname="org.apache.tools.ant.taskdefs.optional.ejb.WLRun"/>
+ <task name="wlstop" version="1.0"
+ classname="org.apache.tools.ant.taskdefs.optional.ejb.WLStop"/>
+ <task name="ejbjar" version="1.0"
+ classname="org.apache.tools.ant.taskdefs.optional.ejb.EjbJar"/>
+ <fileset dir="${build.classes}">
+ <include name="org/apache/tools/ant/taskdefs/optional/ejb/**/*.class"/>
+ </fileset>
+ </tasklib>
+
+ <tasklib name="mparse" version="${version}"
+ home="http://jakarta.apache.org/ant/optional.html"
+ jarfile="${ext.dir}/mparse.tsk">
+ <task name="mparse" version="1.0"
+
classname="org.apache.tools.ant.taskdefs.optional.metamata.MParse"/>
+ <fileset dir="${build.classes}">
+ <include
name="org/apache/tools/ant/taskdefs/optional/metamata/*.class"/>
+ </fileset>
+ </tasklib>
+
+ <tasklib name="cab" version="${version}"
+ home="http://jakarta.apache.org/ant/optional.html"
+ jarfile="${ext.dir}/cab.tsk">
+ <task name="cab" version="1.0"
+ classname="org.apache.tools.ant.taskdefs.optional.Cab"/>
+ <fileset dir="${build.classes}">
+ <include name="org/apache/tools/ant/taskdefs/optional/Cab.class"/>
+ </fileset>
+ </tasklib>
+
+ <tasklib name="ftp" version="${version}"
+ home="http://jakarta.apache.org/ant/optional.html"
+ jarfile="${ext.dir}/ftp.tsk">
+ <task name="ftp" version="1.0"
+ classname="org.apache.tools.ant.taskdefs.optional.FTP"/>
+ <fileset dir="${build.classes}">
+ <include name="org/apache/tools/ant/taskdefs/optional/FTP.class"/>
+ </fileset>
+ </tasklib>
+
+ <tasklib name="javacc" version="${version}"
+ home="http://jakarta.apache.org/ant/optional.html"
+ jarfile="${ext.dir}/javacc.tsk">
+ <task name="javacc" version="1.0"
+ classname="org.apache.tools.ant.taskdefs.optional.javacc.JavaCC"/>
+ <task name="jjtree" version="1.0"
+ classname="org.apache.tools.ant.taskdefs.optional.javacc.JJTree"/>
+ <fileset dir="${build.classes}">
+ <include name="org/apache/tools/ant/taskdefs/optional/javacc/*.class"/>
+ </fileset>
+ </tasklib>
+
+ <tasklib name="starteam" version="${version}"
+ home="http://jakarta.apache.org/ant/optional.html"
+ jarfile="${ext.dir}/starteam.tsk">
+ <task name="starteam" version="1.0"
+
classname="org.apache.tools.ant.taskdefs.optional.scm.AntStarTeamCheckOut"/>
+ <fileset dir="${build.classes}">
+ <include name="org/apache/tools/ant/taskdefs/optional/scm/*.class"/>
+ </fileset>
+ </tasklib>
+
+ <tasklib name="wljspc" version="${version}"
+ home="http://jakarta.apache.org/ant/optional.html"
+ jarfile="${ext.dir}/wljspc.tsk">
+ <task name="wljspc" version="1.0"
+ classname="org.apache.tools.ant.taskdefs.optional.jsp.WLJspc"/>
+ <fileset dir="${build.classes}">
+ <include name="org/apache/tools/ant/taskdefs/optional/jsp/*.class"/>
+ </fileset>
+ </tasklib>
+
+ <tasklib name="jlink" version="${version}"
+ home="http://jakarta.apache.org/ant/optional.html"
+ jarfile="${ext.dir}/jlink.tsk">
+ <task name="jlink" version="1.0"
+
classname="org.apache.tools.ant.taskdefs.optional.jlink.JlinkTask"/>
+ <fileset dir="${build.classes}">
+ <include name="org/apache/tools/ant/taskdefs/optional/jlink/*.class"/>
+ </fileset>
+ </tasklib>
+
+ <tasklib name="native2ascii" version="${version}"
+ home="http://jakarta.apache.org/ant/optional.html"
+ jarfile="${ext.dir}/native2ascii.tsk">
+ <task name="native2ascii" version="1.0"
+ classname="org.apache.tools.ant.taskdefs.optional.Native2Ascii"/>
+ <fileset dir="${build.classes}">
+ <include
name="org/apache/tools/ant/taskdefs/optional/Native2Ascii.class"/>
+ </fileset>
+ </tasklib>
+
+ <tasklib name="perforce" version="${version}"
+ home="http://jakarta.apache.org/ant/optional.html"
+ jarfile="${ext.dir}/perforce.tsk">
+ <task name="perforce" version="1.0"
+
classname="org.apache.tools.ant.taskdefs.optional.perforce.P4sync"/>
+ <fileset dir="${build.classes}">
+ <include
name="org/apache/tools/ant/taskdefs/optional/perforce/*.class"/>
+ </fileset>
+ </tasklib>
+ </target>
+
</project>
Index: src/main/org/apache/tools/ant/Main.java
===================================================================
RCS file: /home/cvspublic/jakarta-ant/src/main/org/apache/tools/ant/Main.java,v
retrieving revision 1.21
diff -u -r1.21 Main.java
--- src/main/org/apache/tools/ant/Main.java 2000/09/24 09:00:07 1.21
+++ src/main/org/apache/tools/ant/Main.java 2000/10/14 18:21:17
@@ -119,6 +119,11 @@
private boolean projectHelp = false;
/**
+ * Indicates we should only load the available Tasks and list them
+ */
+ private boolean listTasks = false;
+
+ /**
* Command line entry point. This method kicks off the building
* of a project object and executes a build using either a given
* target or the default target.
@@ -233,6 +243,9 @@
} else if (arg.equals("-projecthelp")) {
// set the flag to display the targets and quit
projectHelp = true;
+ } else if (arg.equals("-tasks")) {
+ // set the flag to display the targets and quit
+ listTasks = true;
} else if (arg.startsWith("-")) {
// we don't have any more args to recognize!
String msg = "Unknown arg: " + arg;
@@ -395,6 +408,8 @@
if (projectHelp) {
printTargets(project);
+ } else if (listTasks) {
+ printTasks(project);
} else {
// actually do some work
project.executeTargets(targets);
@@ -473,6 +488,7 @@
msg.append("Options: " + lSep);
msg.append(" -help print this message" + lSep);
msg.append(" -projecthelp print project help information" +
lSep);
+ msg.append(" -tasks print information about available
tasks" + lSep);
msg.append(" -version print the version information and
exit" + lSep);
msg.append(" -quiet be extra quiet" + lSep);
msg.append(" -verbose be extra verbose" + lSep);
@@ -547,6 +563,62 @@
printTargets(subNames, null, "Subtargets:", 0);
}
+ /**
+ * Print out a list of all defined tasks
+ */
+ private static void printTasks(Project project) {
+ String lSep = System.getProperty("line.separator");
+ StringBuffer msg = new StringBuffer();
+ int maxLength = 0;
+
+ Vector builtIn = new Vector();
+ Vector extension = new Vector();
+ Vector thruTaskdef = new Vector();
+
+ Enumeration taskDefinitions = project.getTaskDefinitions().elements();
+ while (taskDefinitions.hasMoreElements()) {
+ TaskDefinition taskDef =
(TaskDefinition)taskDefinitions.nextElement();
+ if (taskDef.isBuiltIn()) {
+ builtIn.addElement(taskDef);
+ } else if (taskDef.isExtension()) {
+ extension.addElement(taskDef);
+ }
+ else {
+ thruTaskdef.addElement(taskDef);
+ }
+
+ if (taskDef.getName().length() > maxLength) {
+ maxLength = taskDef.getName().length();
+ }
+ }
+
+ printTasks(builtIn, "Built-In Tasks", maxLength);
+ printTasks(extension, "Extension Tasks", maxLength);
+ printTasks(thruTaskdef, "Tasks defined in the build-file", maxLength);
+ }
+
+ private static void printTasks(Vector taskDefs, String heading, int
maxLength) {
+ String lSep = System.getProperty("line.separator");
+ String spaces = " ";
+ while (spaces.length()<maxLength) {
+ spaces += spaces;
+ }
+ StringBuffer msg = new StringBuffer();
+
+ msg.append(heading + lSep + lSep);
+ for (int i=0; i<taskDefs.size(); i++) {
+ msg.append(" ");
+ TaskDefinition taskDef = (TaskDefinition)taskDefs.elementAt(i);
+ msg.append(taskDef.getName());
+ if (taskDef.getDescription() != null) {
+ msg.append(spaces.substring(0, maxLength -
((String)taskDef.getName()).length() + 2));
+ msg.append(taskDef.getDescription());
+ }
+ msg.append(lSep);
+ }
+ System.out.println(msg.toString());
+ }
+
/**
* Search for the insert position to keep names a sorted list of Strings
*/
Index: src/main/org/apache/tools/ant/Project.java
===================================================================
RCS file:
/home/cvspublic/jakarta-ant/src/main/org/apache/tools/ant/Project.java,v
retrieving revision 1.44
diff -u -r1.44 Project.java
--- src/main/org/apache/tools/ant/Project.java 2000/10/10 16:27:22 1.44
+++ src/main/org/apache/tools/ant/Project.java 2000/10/14 18:21:21
@@ -156,9 +156,12 @@
while (enum.hasMoreElements()) {
String key = (String) enum.nextElement();
String value = props.getProperty(key);
+ String desc = props.getProperty(key + ".desc");
try {
Class taskClass = Class.forName(value);
- addTaskDefinition(key, taskClass);
+ TaskDefinition taskDef = new TaskDefinition(key, taskClass,
+ desc,
TaskDefinition.TASK_BUILT_IN);
+ addTaskDefinition(key, taskDef);
} catch (NoClassDefFoundError ncdfe) {
// ignore...
} catch (ClassNotFoundException cnfe) {
@@ -197,6 +200,8 @@
throw new BuildException("Can't load default datatype list");
}
+ initExtTasks();
+
Properties systemP = System.getProperties();
Enumeration e = systemP.keys();
while (e.hasMoreElements()) {
@@ -206,6 +211,23 @@
}
}
+ private void initExtTasks() throws BuildException
+ {
+ String extDir = System.getProperty("ant.home");
+ if (extDir == null)
+ {
+ System.out.println("ant.home is not defined, skipping
extension-loading");
+ return;
+ }
+ extDir = extDir + File.separator + "ext";
+
+ File tskDir = new File(extDir);
+ if (!tskDir.exists()) return;
+
+ AntExtensionHelper.initExtensionTasks(this, tskDir);
+
+ }
+
public void addBuildListener(BuildListener listener) {
listeners.addElement(listener);
}
@@ -349,12 +371,21 @@
log("Detected OS: " + System.getProperty("os.name"), MSG_VERBOSE);
}
- public void addTaskDefinition(String taskName, Class taskClass) {
+/*
+ public void addTaskDefinition(String taskName, Class taskClass, String
taskDesc) {
String msg = " +User task: " + taskName + " " +
taskClass.getName();
log(msg, MSG_DEBUG);
- taskClassDefinitions.put(taskName, taskClass);
+ TaskDefinition taskDef = new TaskDefinition(taskName, taskClass,
taskDesc);
+ taskClassDefinitions.put(taskName, taskDef);
}
+*/
+ public void addTaskDefinition(String taskName, TaskDefinition taskDef) {
+ String msg = " +User task: " + taskName + " " +
taskDef.getTaskClass().getName();
+ log(msg, MSG_DEBUG);
+ taskClassDefinitions.put(taskName, taskDef);
+ }
+
public Hashtable getTaskDefinitions() {
return taskClassDefinitions;
}
@@ -427,10 +458,12 @@
}
public Task createTask(String taskType) throws BuildException {
- Class c = (Class) taskClassDefinitions.get(taskType);
-
- if (c == null)
+ TaskDefinition taskDef =
(TaskDefinition)taskClassDefinitions.get(taskType);
+ if (taskDef == null)
return null;
+
+ Class c = taskDef.getTaskClass();
+
try {
Object o = c.newInstance();
Task task = null;
Index: src/main/org/apache/tools/ant/taskdefs/Ant.java
===================================================================
RCS file:
/home/cvspublic/jakarta-ant/src/main/org/apache/tools/ant/taskdefs/Ant.java,v
retrieving revision 1.18
diff -u -r1.18 Ant.java
--- src/main/org/apache/tools/ant/taskdefs/Ant.java 2000/09/20 11:31:13
1.18
+++ src/main/org/apache/tools/ant/taskdefs/Ant.java 2000/10/14 18:21:22
@@ -90,8 +90,8 @@
public void init() {
p1 = new Project();
p1.setJavaVersionProperty();
- p1.addTaskDefinition("property",
-
(Class)project.getTaskDefinitions().get("property"));
+ TaskDefinition propertyTask =
(TaskDefinition)project.getTaskDefinitions().get("property");
+ p1.addTaskDefinition("property", propertyTask);
}
private void reinit() {
@@ -137,8 +137,8 @@
Enumeration et = taskdefs.keys();
while (et.hasMoreElements()) {
String taskName = (String) et.nextElement();
- Class taskClass = (Class) taskdefs.get(taskName);
- p1.addTaskDefinition(taskName, taskClass);
+ TaskDefinition taskDef = (TaskDefinition) taskdefs.get(taskName);
+ p1.addTaskDefinition(taskName, taskDef);
}
Hashtable typedefs = project.getDataTypeDefinitions();
Index: src/main/org/apache/tools/ant/taskdefs/AntStructure.java
===================================================================
RCS file:
/home/cvspublic/jakarta-ant/src/main/org/apache/tools/ant/taskdefs/AntStructure.java,v
retrieving revision 1.8
diff -u -r1.8 AntStructure.java
--- src/main/org/apache/tools/ant/taskdefs/AntStructure.java 2000/09/18
14:04:56 1.8
+++ src/main/org/apache/tools/ant/taskdefs/AntStructure.java 2000/10/14
18:21:24
@@ -58,6 +58,7 @@
import org.apache.tools.ant.IntrospectionHelper;
import org.apache.tools.ant.Project;
import org.apache.tools.ant.Task;
+import org.apache.tools.ant.TaskDefinition;
import org.apache.tools.ant.types.EnumeratedAttribute;
import java.util.Enumeration;
@@ -126,8 +127,8 @@
for (int i=0; i<tasks.size(); i++) {
String taskName = (String) tasks.elementAt(i);
- printElementDecl(out, taskName,
- (Class)
project.getTaskDefinitions().get(taskName));
+ TaskDefinition taskDef =
(TaskDefinition)project.getTaskDefinitions().get(taskName);
+ printElementDecl(out, taskName, taskDef.getTaskClass());
}
printTail(out);
Index: src/main/org/apache/tools/ant/taskdefs/CallTarget.java
===================================================================
RCS file:
/home/cvspublic/jakarta-ant/src/main/org/apache/tools/ant/taskdefs/CallTarget.java,v
retrieving revision 1.4
diff -u -r1.4 CallTarget.java
--- src/main/org/apache/tools/ant/taskdefs/CallTarget.java 2000/09/15
07:37:11 1.4
+++ src/main/org/apache/tools/ant/taskdefs/CallTarget.java 2000/10/14
18:21:25
@@ -81,6 +81,7 @@
public class CallTarget extends Task {
private Ant callee;
+ private String output = null;
private String subTarget;
public void init() {
@@ -100,6 +101,9 @@
callee.setDir(project.getBaseDir());
callee.setAntfile(project.getProperty("ant.file"));
callee.setTarget(subTarget);
+ if (output != null) {
+ callee.setOutput(output);
+ }
callee.execute();
}
@@ -110,4 +114,9 @@
public void setTarget(String target) {
subTarget = target;
}
+
+ public void setOutput(String s) {
+ this.output = s;
+ }
+
}
Index: src/main/org/apache/tools/ant/taskdefs/Taskdef.java
===================================================================
RCS file:
/home/cvspublic/jakarta-ant/src/main/org/apache/tools/ant/taskdefs/Taskdef.java,v
retrieving revision 1.11
diff -u -r1.11 Taskdef.java
--- src/main/org/apache/tools/ant/taskdefs/Taskdef.java 2000/09/27 07:42:23
1.11
+++ src/main/org/apache/tools/ant/taskdefs/Taskdef.java 2000/10/14 18:21:29
@@ -65,6 +65,7 @@
public class Taskdef extends Task {
private String name;
private String value;
+ private String description;
private Path classpath;
public void setClasspath(Path classpath) {
@@ -112,7 +113,10 @@
} else {
taskClass = Class.forName(value);
}
- project.addTaskDefinition(name, taskClass);
+ TaskDefinition taskDef = new TaskDefinition(name, taskClass,
+ description,
+
TaskDefinition.TASK_TASKDEF);
+ project.addTaskDefinition(name, taskDef);
} catch (ClassNotFoundException cnfe) {
String msg = "taskdef class " + value +
" cannot be found";
@@ -134,5 +138,9 @@
public void setClassname(String v) {
value = v;
+ }
+
+ public void setDescription( String description) {
+ this.description = description;
}
}
Index: src/main/org/apache/tools/ant/taskdefs/defaults.properties
===================================================================
RCS file:
/home/cvspublic/jakarta-ant/src/main/org/apache/tools/ant/taskdefs/defaults.properties,v
retrieving revision 1.46
diff -u -r1.46 defaults.properties
--- src/main/org/apache/tools/ant/taskdefs/defaults.properties 2000/10/06
10:54:09 1.46
+++ src/main/org/apache/tools/ant/taskdefs/defaults.properties 2000/10/14
18:21:30
@@ -1,74 +1,108 @@
# standard ant tasks
mkdir=org.apache.tools.ant.taskdefs.Mkdir
+mkdir.desc=Creates directories
javac=org.apache.tools.ant.taskdefs.Javac
+javac.desc=Compile Java-sources
chmod=org.apache.tools.ant.taskdefs.Chmod
+chmod.desc=Changes file-attributes
delete=org.apache.tools.ant.taskdefs.Delete
+delete.desc=Deletes Files or Directories
copy=org.apache.tools.ant.taskdefs.Copy
+copy.desc=Copies Files or Directories
move=org.apache.tools.ant.taskdefs.Move
+move.desc=Moves Files
jar=org.apache.tools.ant.taskdefs.Jar
-rmic=org.apache.tools.ant.taskdefs.Rmic
+jar.desc=Create Jar-Files
+#rmic=org.apache.tools.ant.taskdefs.Rmic
cvs=org.apache.tools.ant.taskdefs.Cvs
+cvs.desc=Executes CVS-commands
get=org.apache.tools.ant.taskdefs.Get
+get.desc=Get Files from a URL
unzip=org.apache.tools.ant.taskdefs.Expand
+unzip.desc=Unzips a Zip-Archive
unjar=org.apache.tools.ant.taskdefs.Expand
-unwar=org.apache.tools.ant.taskdefs.Expand
+unjar.desc=Unjars a Jar-Archive
+#unwar=org.apache.tools.ant.taskdefs.Expand
echo=org.apache.tools.ant.taskdefs.Echo
+echo.desc=Display a Message
javadoc=org.apache.tools.ant.taskdefs.Javadoc
+javadoc.desc=Creates Javadoc
zip=org.apache.tools.ant.taskdefs.Zip
+zip.desc=Creates a Zip-Archive
gzip=org.apache.tools.ant.taskdefs.GZip
+gzip.desc=Creates a gzip-Archive
gunzip=org.apache.tools.ant.taskdefs.GUnzip
+gunzip.desc=Expands a gzip-archive
replace=org.apache.tools.ant.taskdefs.Replace
+replace.desc=Replaces Strings in Files
java=org.apache.tools.ant.taskdefs.Java
+java.desc=Executes a Java-Class
tstamp=org.apache.tools.ant.taskdefs.Tstamp
+tstamp.desc=Provides properties containing current timestamp
property=org.apache.tools.ant.taskdefs.Property
+property.desc=Defines a property
taskdef=org.apache.tools.ant.taskdefs.Taskdef
+taskdef.desc=Defines a new Task
ant=org.apache.tools.ant.taskdefs.Ant
+ant.desc=Executes ant on another build-file
exec=org.apache.tools.ant.taskdefs.ExecTask
+exec.desc=Executes an OS-Command
tar=org.apache.tools.ant.taskdefs.Tar
+tar.desc=Creates a tar-archive
untar=org.apache.tools.ant.taskdefs.Untar
+untar.desc=Expands a tar-archive
available=org.apache.tools.ant.taskdefs.Available
+available.desc=Tests if a Class, File or Resource is available
filter=org.apache.tools.ant.taskdefs.Filter
+filter.desc=Defines a new Filter for token-replacement
fixcrlf=org.apache.tools.ant.taskdefs.FixCRLF
-patch=org.apache.tools.ant.taskdefs.Patch
-style=org.apache.tools.ant.taskdefs.XSLTProcess
+fixcrlf.desc=Fixes CR/LF-differences between different platforms
+#patch=org.apache.tools.ant.taskdefs.Patch
+#style=org.apache.tools.ant.taskdefs.XSLTProcess
touch=org.apache.tools.ant.taskdefs.Touch
-signjar=org.apache.tools.ant.taskdefs.SignJar
-genkey=org.apache.tools.ant.taskdefs.GenerateKey
-antstructure=org.apache.tools.ant.taskdefs.AntStructure
+touch.desc=Changes the date of a file (if running on JDK 1.3)
+#signjar=org.apache.tools.ant.taskdefs.SignJar
+#genkey=org.apache.tools.ant.taskdefs.GenerateKey
+#antstructure=org.apache.tools.ant.taskdefs.AntStructure
execon=org.apache.tools.ant.taskdefs.ExecuteOn
+execon.desc=Executes a System-Command if running on a specified platform
antcall=org.apache.tools.ant.taskdefs.CallTarget
-sql=org.apache.tools.ant.taskdefs.SQLExec
-mail=org.apache.tools.ant.taskdefs.SendEmail
+antcall.desc=Calls another target in the current build-file
+#sql=org.apache.tools.ant.taskdefs.SQLExec
+#mail=org.apache.tools.ant.taskdefs.SendEmail
fail=org.apache.tools.ant.taskdefs.Exit
-war=org.apache.tools.ant.taskdefs.War
+fail.desc=Fails the build and optionally prints a message
+#war=org.apache.tools.ant.taskdefs.War
uptodate=org.apache.tools.ant.taskdefs.UpToDate
+uptodate.desc=Tests if a file is up-to-date
+tasklib=org.apache.tools.ant.taskdefs.TaskLib
+tasklib.desc=Creates an Ant-Extension
# optional tasks
-script=org.apache.tools.ant.taskdefs.optional.Script
-netrexxc=org.apache.tools.ant.taskdefs.optional.NetRexxC
-renameext=org.apache.tools.ant.taskdefs.optional.RenameExtensions
-ejbc=org.apache.tools.ant.taskdefs.optional.ejb.Ejbc
-ddcreator=org.apache.tools.ant.taskdefs.optional.ejb.DDCreator
-wlrun=org.apache.tools.ant.taskdefs.optional.ejb.WLRun
-wlstop=org.apache.tools.ant.taskdefs.optional.ejb.WLStop
-vssget=org.apache.tools.ant.taskdefs.optional.vss.MSVSSGET
-ejbjar=org.apache.tools.ant.taskdefs.optional.ejb.EjbJar
-mparse=org.apache.tools.ant.taskdefs.optional.metamata.MParse
-junit=org.apache.tools.ant.taskdefs.optional.junit.JUnitTask
-cab=org.apache.tools.ant.taskdefs.optional.Cab
-ftp=org.apache.tools.ant.taskdefs.optional.FTP
-javacc=org.apache.tools.ant.taskdefs.optional.javacc.JavaCC
-jjtree=org.apache.tools.ant.taskdefs.optional.javacc.JJTree
-starteam=org.apache.tools.ant.taskdefs.optional.scm.AntStarTeamCheckOut
-wljspc=org.apache.tools.ant.taskdefs.optional.jsp.WLJspc
-jlink=org.apache.tools.ant.taskdefs.optional.jlink.JlinkTask
-native2ascii=org.apache.tools.ant.taskdefs.optional.Native2Ascii
-perforce=org.apache.tools.ant.taskdefs.optional.perforce.P4sync
+#script=org.apache.tools.ant.taskdefs.optional.Script
+#netrexxc=org.apache.tools.ant.taskdefs.optional.NetRexxC
+#renameext=org.apache.tools.ant.taskdefs.optional.RenameExtensions
+#ejbc=org.apache.tools.ant.taskdefs.optional.ejb.Ejbc
+#ddcreator=org.apache.tools.ant.taskdefs.optional.ejb.DDCreator
+#wlrun=org.apache.tools.ant.taskdefs.optional.ejb.WLRun
+#wlstop=org.apache.tools.ant.taskdefs.optional.ejb.WLStop
+#ejbjar=org.apache.tools.ant.taskdefs.optional.ejb.EjbJar
+#mparse=org.apache.tools.ant.taskdefs.optional.metamata.MParse
+#junit=org.apache.tools.ant.taskdefs.optional.junit.JUnitTask
+#cab=org.apache.tools.ant.taskdefs.optional.Cab
+#ftp=org.apache.tools.ant.taskdefs.optional.FTP
+#javacc=org.apache.tools.ant.taskdefs.optional.javacc.JavaCC
+#jjtree=org.apache.tools.ant.taskdefs.optional.javacc.JJTree
+#starteam=org.apache.tools.ant.taskdefs.optional.scm.AntStarTeamCheckOut
+#wljspc=org.apache.tools.ant.taskdefs.optional.jsp.WLJspc
+#jlink=org.apache.tools.ant.taskdefs.optional.jlink.JlinkTask
+#native2ascii=org.apache.tools.ant.taskdefs.optional.Native2Ascii
+#perforce=org.apache.tools.ant.taskdefs.optional.perforce.P4sync
# deprecated ant tasks (kept for back compatibility)
-javadoc2=org.apache.tools.ant.taskdefs.Javadoc
-compileTask=org.apache.tools.ant.taskdefs.CompileTask
-copydir=org.apache.tools.ant.taskdefs.Copydir
-copyfile=org.apache.tools.ant.taskdefs.Copyfile
-deltree=org.apache.tools.ant.taskdefs.Deltree
-rename=org.apache.tools.ant.taskdefs.Rename
+#javadoc2=org.apache.tools.ant.taskdefs.Javadoc
+#compileTask=org.apache.tools.ant.taskdefs.CompileTask
+#copydir=org.apache.tools.ant.taskdefs.Copydir
+#copyfile=org.apache.tools.ant.taskdefs.Copyfile
+#deltree=org.apache.tools.ant.taskdefs.Deltree
+#rename=org.apache.tools.ant.taskdefs.Rename
AntExtensionHelper.java
Description: Binary data
TaskDefinition.java
Description: Binary data
TaskLib.java
Description: Binary data
