...
- 插件的jar包从lib移动到plugin.xml所在文件夹
- plugin.xml所在文件夹改名为plugin-id-version
- ExtraClassManager中只存储插件对象与默认值;不在监听环境改变事件,完全由插件引擎控制
- 插件引擎只监听环境切入与切出,切入时启动、切出时关闭
- 所有plugin.xml中描述的对象都在运行的第一时间生成,不再等待servlet事件(之前platform的对象是在启动平台的时候实例化的,现在统一到了插件启动时)xml中描述的对象都在运行的第一时间生成,不再等待servlet事件
- 插件引擎放弃使用动态代理,改为在运行前的字节码操作来实现相同的功能,所以之后可以对插件对象使用instance of等操作
- 每个插件有单独的ClassLoader
- 插件自身在加载当前插件的资源时,不要使用系统ClassLoader了,加载不到的
- 报表中使用IOUtils读取资源、GeneralUtils的classForName去反序列化对象,这两个工具方法会遍历所有插件
- 每次运行都会创建一个新的ClassLoader,保证在类初始化就做一些操作的插件热部署时不出问题
...
{"serverDuration": 145, "requestCorrelationId": "53e7128a7bd30cf1"}