You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ant.apache.org by pe...@apache.org on 2006/12/03 23:56:41 UTC

svn commit: r481971 - /ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/optional/script/ScriptDef.java

Author: peterreilly
Date: Sun Dec  3 14:56:40 2006
New Revision: 481971

URL: http://svn.apache.org/viewvc?view=rev&rev=481971
Log:
use helper class, add manager attribute

Modified:
    ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/optional/script/ScriptDef.java

Modified: ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/optional/script/ScriptDef.java
URL: http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/optional/script/ScriptDef.java?view=diff&rev=481971&r1=481970&r2=481971
==============================================================================
--- ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/optional/script/ScriptDef.java (original)
+++ ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/optional/script/ScriptDef.java Sun Dec  3 14:56:40 2006
@@ -36,7 +36,8 @@
 import java.io.File;
 
 import org.apache.tools.ant.util.ClasspathUtils;
-import org.apache.tools.ant.util.optional.ScriptRunner;
+import org.apache.tools.ant.util.ScriptRunnerBase;
+import org.apache.tools.ant.util.ScriptRunnerHelper;
 
 /**
  * Define a task using a script
@@ -44,8 +45,15 @@
  * @since Ant 1.6
  */
 public class ScriptDef extends DefBase {
+    /**
+     * script runner helper
+     */
+    private ScriptRunnerHelper helper = new ScriptRunnerHelper();
+    /**
+     * script runner.
+     */
     /** Used to run the script */
-    private ScriptRunner runner = new ScriptRunner();
+    private ScriptRunnerBase   runner = null;
 
     /** the name by which this script will be activated */
     private String name;
@@ -63,6 +71,16 @@
     private Map nestedElementMap;
 
     /**
+     * Set the project.
+     * @param project the project that this def belows to.
+     */
+    public void setProject(Project project) {
+        super.setProject(project);
+        helper.setProjectComponent(this);
+        helper.setSetBeans(false);
+    }
+
+    /**
      * set the name under which this script will be activated in a build
      * file
      *
@@ -174,11 +192,19 @@
                 + "name the script");
         }
 
-        if (runner.getLanguage() == null) {
+        if (helper.getLanguage() == null) {
             throw new BuildException("<scriptdef> requires a language attribute "
                 + "to specify the script language");
         }
 
+        // Check if need to set the loader
+        if (getAntlibClassLoader() != null || hasCpDelegate()) {
+            helper.setClassLoader(createLoader());
+        }
+
+        // Now create the scriptRunner
+        runner = helper.getScriptRunner();
+
         attributeSet = new HashSet();
         for (Iterator i = attributes.iterator(); i.hasNext();) {
             Attribute attribute = (Attribute) i.next();
@@ -321,6 +347,14 @@
         runner.executeScript("scriptdef_" + name);
     }
 
+    /**
+     * Defines the manager.
+     *
+     * @param manager the scripting manager.
+     */
+    public void setManager(String manager) {
+        helper.setManager(manager);
+    }
 
     /**
      * Defines the language (required).
@@ -328,7 +362,7 @@
      * @param language the scripting language name for the script.
      */
     public void setLanguage(String language) {
-        runner.setLanguage(language);
+        helper.setLanguage(language);
     }
 
     /**
@@ -337,7 +371,7 @@
      * @param file the file containing the script source.
      */
     public void setSrc(File file) {
-        runner.setSrc(file);
+        helper.setSrc(file);
     }
 
     /**
@@ -346,7 +380,7 @@
      * @param text a component of the script text to be added.
      */
     public void addText(String text) {
-        runner.addText(text);
+        helper.addText(text);
     }
 }
 



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org
For additional commands, e-mail: dev-help@ant.apache.org