@@ -19,9 +19,9 @@ package org.apache.tools.ant.taskdefs.optional;
import java.io.File;
import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.Project;
import org.apache.tools.ant.Task;
import org.apache.tools.ant.util.optional.ScriptRunner;
import org.apache.tools.ant.util.ScriptRunnerBase;
import org.apache.tools.ant.util.ScriptRunnerHelper;
import org.apache.tools.ant.types.Path;
import org.apache.tools.ant.types.Reference;
@@ -32,40 +32,33 @@ import org.apache.tools.ant.types.Reference;
*/
public class Script extends Task {
private Path classpath;
private String language;
private File src;
private String text;
private boolean setBeans = true;
private ScriptRunnerHelper helper = new ScriptRunnerHelper();
/**
* Do the work.
* Set the project.
* @param project the project that this task belongs to.
*/
public void setProject(Project project) {
super.setProject(project);
helper.setProjectComponent(this);
}
/**
* Run the script using the helper object.
*
* @exception BuildException if something goes wrong with the build
*/
public void execute() throws BuildException {
ScriptRunnerBase runner = new ScriptRunner();
if (language != null) {
runner.setLanguage(language);
}
if (src != null) {
runner.setSrc(src);
}
if (text != null) {
runner.addText(text);
}
if (classpath != null) {
runner.setScriptClassLoader(
getProject().createClassLoader(
getClass().getClassLoader(), classpath));
}
if (setBeans) {
runner.bindToComponent(this);
} else {
runner.bindToComponentMinimum(this);
}
helper.getScriptRunner().executeScript("ANT");
}
runner.executeScript("ANT");
/**
* Defines the manager.
*
* @param manager the scripting manager.
*/
public void setManager(String manager) {
helper.setManager(manager);
}
/**
@@ -74,7 +67,7 @@ public class Script extends Task {
* @param language the scripting language name for the script.
*/
public void setLanguage(String language) {
this.language = language ;
helper.setLanguage(language) ;
}
/**
@@ -83,7 +76,7 @@ public class Script extends Task {
* @param fileName the name of the file containing the script source.
*/
public void setSrc(String fileName) {
this.src = new File(fileName );
helper.setSrc(new File(fileName) );
}
/**
@@ -92,7 +85,7 @@ public class Script extends Task {
* @param text a component of the script text to be added.
*/
public void addText(String text) {
this.text = text ;
helper.addText(text) ;
}
/**
@@ -101,7 +94,7 @@ public class Script extends Task {
* @param classpath an Ant Path object containing the search path.
*/
public void setClasspath(Path classpath) {
createClasspath().append (classpath);
helper.setClasspath (classpath);
}
/**
@@ -110,10 +103,7 @@ public class Script extends Task {
* @return an empty Path instance to be configured by Ant.
*/
public Path createClasspath() {
if (this.classpath == null) {
this.classpath = new Path(getProject());
}
return this.classpath.createPath();
return helper.createClasspath();
}
/**
@@ -123,7 +113,7 @@ public class Script extends Task {
* value.
*/
public void setClasspathRef(Reference r) {
createClasspath().setRefid (r);
helper.setClasspathRef (r);
}
/**
@@ -137,6 +127,6 @@ public class Script extends Task {
* @param setBeans the value to set.
*/
public void setSetBeans(boolean setBeans) {
this.setBeans = setBeans ;
helper.setSetBeans(setBeans) ;
}
}