Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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

...