diff --git a/src/main/org/apache/tools/ant/Project.java b/src/main/org/apache/tools/ant/Project.java index 61d6a0378..3f88f8371 100644 --- a/src/main/org/apache/tools/ant/Project.java +++ b/src/main/org/apache/tools/ant/Project.java @@ -319,6 +319,10 @@ public class Project { taskClassDefinitions.put(taskName, taskClass); } + public Hashtable getTaskDefinitions() { + return taskClassDefinitions; + } + /** * This call expects to add a new Target. * @param target is the Target to be added to the current diff --git a/src/main/org/apache/tools/ant/taskdefs/Ant.java b/src/main/org/apache/tools/ant/taskdefs/Ant.java index fd7a4ac6e..14d88bc06 100644 --- a/src/main/org/apache/tools/ant/taskdefs/Ant.java +++ b/src/main/org/apache/tools/ant/taskdefs/Ant.java @@ -106,6 +106,14 @@ public class Ant extends Task { p1.init(); + Hashtable taskdefs = project.getTaskDefinitions(); + Enumeration et = taskdefs.keys(); + while (et.hasMoreElements()) { + String taskName = (String) et.nextElement(); + Class taskClass = (Class) taskdefs.get(taskName); + p1.addTaskDefinition(taskName, taskClass); + } + // set user-define properties Hashtable prop1 = project.getProperties(); Enumeration e = prop1.keys();