import org.apache.bsf.*;
import java.util.Vector;
public class TestBshBSF
{
public static void main( String [] args )
throws BSFException
{
BSFManager mgr = new BSFManager();
// register beanshell with the BSF framework
String [] extensions = { "bsh" };
mgr.registerScriptingEngine(
"beanshell", "bsh.util.BeanShellBSFEngine", extensions );
mgr.declareBean("foo", "fooString", String.class);
mgr.declareBean("bar", "barString", String.class);
mgr.registerBean("gee", "geeString");
BSFEngine beanshellEngine = mgr.loadScriptingEngine("beanshell");
String script = "foo + bar + bsf.lookupBean(\"gee\")";
Object result = beanshellEngine.eval( "Test eval...", -1, -1, script );
assertTrue( result.equals("fooStringbarStringgeeString" ) );
// test apply()
Vector names = new Vector();
names.addElement("name");
Vector vals = new Vector();
vals.addElement("Pat");
script = "name + name";
result = beanshellEngine.apply(
"source string...", -1, -1, script, names, vals );
assertTrue( result.equals("PatPat" ) );
result = beanshellEngine.eval( "Test eval...", -1, -1, "name" );
// name should not be set
assertTrue( result == null );
// Verify the primitives are unwrapped
result = beanshellEngine.eval( "Test eval...", -1, -1, "1+1");
assertTrue( result instanceof Integer
&& ((Integer)result).intValue() == 2 );
}
static void assertTrue( boolean cond ) {
if ( cond )
System.out.println("Passed...");
else
throw new Error("assert failed...");
}
}