public static String evalScriptExpression(final Context context, final String expression, final Step step) {
final ResetScriptRunner runner = context.getRunner();
if (runner == null) {
throw new StepExecutionException("Can't evaluate script property because no previous <scriptStep> with keep=true.", step);
}
runner.reset();
try {
return evalByRunner(runner, expression, step);
} catch (BuildException be) {
throw new StepExecutionException("Error invoking script: " + be.getMessage(), step);
}