zorka源码解读之Beanshell与zorka的交互实现

时间:2021-02-27 06:53:22

一、beanshell基础知识
从应用程序中调用BeanShell
创建一个BeanShell的解释器(interpreter)
用eval()和source()命令可以对一个字符串求值和运行一个脚本文件
使用set()方法可以给一个对象传入一个变量的参考
使用get()方法可以重新得到一个变量的结果

二、在beanshell中注册java对象
java代码通过beanshell库的interpreter解释器来向beanshell中传递变量。
ZorkaBshAgent.java中的put方法调用Interpreter的set方法将SpyLib、ZorkaLib、TracerLib、ZabbixLib、NagiosLib、SyslogLib实例注册在beanshell中。

zorka源码解读之Beanshell与zorka的交互实现

三、java加载beanshell并执行beanshell
beanshell脚本中用interpreter的eval()和source()命令可以对一个字符串求值和运行一个脚本文件
ZorkaBshAgent.java中执行了加载bsh脚本的操作,在loadScript方法中执行interpreter的source(path)和eval()来执行脚本。

zorka源码解读之Beanshell与zorka的交互实现