*/
public Object evaluateScript(String execName) throws BuildException {
checkLanguage();
ClassLoader origLoader = replaceContextLoader();
try {
ReflectWrapper engine = createEngine();
if (engine == null) {
throw new BuildException(
"Unable to create javax script engine for "
+ getLanguage());
}
for (Iterator i = getBeans().keySet().iterator(); i.hasNext();) {
String key = (String) i.next();
Object value = getBeans().get(key);
if ("FX".equalsIgnoreCase(getLanguage())) {
engine.invoke(
"put", String.class, key
+ ":" + value.getClass().getName(),
Object.class, value);
} else {
engine.invoke(
"put", String.class, key,
Object.class, value);
}
}
// execute the script
return engine.invoke("eval", String.class, getScript());
} catch (BuildException be) {
//catch and rethrow build exceptions
// this may be a BuildException wrapping a ScriptException
// deeply wrapping yet another BuildException - for