Beanshell is indeed a simple powerful tool, let's see how JBPM uses it:
// script variables private Collection usedVariableNames = null; // script statement private String statements = null; // outcome variables private String resultVariableName = null; // get the input variable for the Token public Object eval (Token token) {Object Result = null; try {// token used to get the entered variable interpreter interpreter = createInterpreter (token); // Execute Script Interpreter.eval (statements); // Return Result = Interpreter.Get (Resultvariablename);} catch Evalerror E) {log.error (e); Throw New RuntimeException ("Unable to Evaluate Script", E);} RETURN RESULT;} Is it easy?