• @guqing guqing pushed to refactor/4610 in guqing/halo

    Below is the list of commits:

    • refactor: plugin classloader config (a815db0)
    0 0
  • @guqing guqing commented on pull request #4663 in halo-dev/halo

    希望的是类加载能和 halo 共享但是资源不共享,所以新的类加载器重写了被 p4fj 重写过的 getResource 方法来使用 UrlClassLoader 原先的实现

    0 0
  • @guqing guqing commented on pull request #4663 in halo-dev/halo

    我的意思是在创建 PluginClassLoader 对象的时候,就设置一个自定义 ClassLoadingStrategy。例如:

    var pluginClassLoader = new PluginClassLoader(pluginManager,
        pluginDescriptor, getClass().getClassLoader(),
        new ClassLoadingStrategy(List.of(PLUGIN, DEPENDENCIES)));

    修改 ClassLoadingStrategy 会改变类加载的行为导致已经加载过的类被重复加载,比如 halo 已经加载过 spring 类而插件启动的时候由于不会共享 halo 的所以会再次加载
    image

    0 0
  • @guqing guqing commented on pull request #4663 in halo-dev/halo

    IMO,这里只需要设置一下 org.pf4j.ClassLoadingStrategy 就可以解决问题吧。如果我说错了,请纠正我。

    ClassLoadingStrategy 会对 getResource 方法应用,也就是目前插件的类加载是先共享 halo 的再加载自己的,而 resource 资源不需要,只需要加载插件自己的就可以了,而默认 p4jf 的实现会将 resource 的加载策略与类一致, 所以导致与 halo 的 resources 同名时加载不到插件的问题.
    image

    0 0
  • @guqing guqing commented on issue #255 in halo-dev/docs

    /remove-lgtm

    如果能用样式解决肯定更好, 期待后续,halo-dev/docs#255 (comment)

    0 0
  • @guqing guqing commented on issue #255 in halo-dev/docs

    /remove-lgtm

    0 0
  • @guqing guqing created a review on pull request #255 in halo-dev/docs

    /lgtm

    0 0
  • @guqing guqing created a review on pull request #78 in halo-dev/plugin-s3
    0 0
  • @guqing guqing created a review on pull request #74 in halo-dev/plugin-s3
    0 0
  • @guqing guqing pushed to feature/notification in guqing/halo

    Below is the list of commits:

    • refactor: notifier APIs pattern (8418b42)
    0 0