diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/script/ScriptDef.java b/src/main/org/apache/tools/ant/taskdefs/optional/script/ScriptDef.java index 29cfe32ff..98eba4217 100644 --- a/src/main/org/apache/tools/ant/taskdefs/optional/script/ScriptDef.java +++ b/src/main/org/apache/tools/ant/taskdefs/optional/script/ScriptDef.java @@ -53,10 +53,13 @@ */ package org.apache.tools.ant.taskdefs.optional.script; +import org.apache.tools.ant.AntTypeDefinition; +import org.apache.tools.ant.ComponentHelper; import org.apache.tools.ant.Project; import org.apache.tools.ant.MagicNames; -import org.apache.tools.ant.Task; import org.apache.tools.ant.BuildException; +import org.apache.tools.ant.ProjectHelper; +import org.apache.tools.ant.taskdefs.DefBase; import java.util.Map; import java.util.HashMap; @@ -75,7 +78,7 @@ import org.apache.tools.ant.util.ScriptRunner; * @author Conor MacNeill * @since Ant 1.6 */ -public class ScriptDef extends Task { +public class ScriptDef extends DefBase { /** Used to run the script */ private ScriptRunner runner = new ScriptRunner(); @@ -268,8 +271,13 @@ public class ScriptDef extends Task { } } + name = ProjectHelper.genComponentName(getUri(), name); scriptRepository.put(name, this); - project.addTaskDefinition(name, ScriptDefBase.class); + AntTypeDefinition def = new AntTypeDefinition(); + def.setName(name); + def.setClass(ScriptDefBase.class); + ComponentHelper.getComponentHelper( + getProject()).addDataTypeDefinition(def); } /** @@ -294,9 +302,12 @@ public class ScriptDef extends Task { instance = getProject().createDataType(definition.type); } } else { + /* // try the context classloader ClassLoader loader = Thread.currentThread().getContextClassLoader(); + */ + ClassLoader loader = createLoader(); Class instanceClass = null; try {