package org.codehaus.mojo.ship;
import groovy.lang.Binding;
import groovy.lang.GroovyShell;
import org.codehaus.groovy.control.CompilerConfiguration;
import java.util.Map;
/**
* Groovy script engine.
*/
public class GroovyScriptEngine
implements ScriptEngine {
public String getExtension() {
return "groovy";
}
/**
* {@inheritDoc}
*/
public Object eval(String script, Map globalVariables)
throws ScriptException {
CompilerConfiguration config = new CompilerConfiguration(CompilerConfiguration.DEFAULT);
Binding binding = new Binding(globalVariables);
GroovyShell interpreter = new GroovyShell(null, binding, config);
try {
return interpreter.evaluate(script);
} catch (ThreadDeath e) {
throw e;
} catch (Throwable e) {
throw new ScriptException(e);
}
}
}