Class ZkPlugin


  • @Plugin(name="ZK",
            description="ZK Framework (http://www.zkoss.org/). Change library properties default values to disablecaches, maintains Label cache and bean resolver cache.",
            testedVersions="6.5.2",
            expectedVersions={"5x","6x","7x?"})
    public class ZkPlugin
    extends java.lang.Object
    ZK framework - http://www.zkoss.org/.

    Plugin:

    • Plugin initialization is triggered after DHtmlLayoutServlet.init() method in servlet classloader
    • Change default value for library properties of ZK caches (org.zkoss.web.classWebResource.cache=false, org.zkoss.zk.WPD.cache=false, org.zkoss.zk.WCS.cache=false, zk-dl.annotation.cache=false). App can override this setting by explicitly set value to true in zk.xml
    • Clear Labels cache after change of any .properties file
    • Clear org.zkoss.zel.BeanELResolver caches after any class change

    All is invoked via reflection, no ZK lib direct dependency.

    Author:
    Jiri Bubnik
    • Constructor Detail

      • ZkPlugin

        public ZkPlugin()
    • Method Detail

      • layoutServletCallInitialized

        @OnClassLoadEvent(classNameRegexp="org.zkoss.zk.ui.http.DHtmlLayoutServlet")
        public static void layoutServletCallInitialized​(org.hotswap.agent.javassist.CtClass ctClass)
                                                 throws org.hotswap.agent.javassist.NotFoundException,
                                                        org.hotswap.agent.javassist.CannotCompileException
        Initialize the plugin after DHtmlLayoutServlet.init() method.
        Throws:
        org.hotswap.agent.javassist.NotFoundException
        org.hotswap.agent.javassist.CannotCompileException
      • defaultDisableCaches

        @OnClassLoadEvent(classNameRegexp="org.zkoss.lang.Library")
        public static void defaultDisableCaches​(org.hotswap.agent.javassist.ClassPool classPool,
                                                org.hotswap.agent.javassist.CtClass ctClass)
                                         throws org.hotswap.agent.javassist.NotFoundException,
                                                org.hotswap.agent.javassist.CannotCompileException
        Default values of caches in development mode.

        Note, that this is a little bit aggressive, but the user may override this by providing explicit value in zk.xml

        Throws:
        org.hotswap.agent.javassist.NotFoundException
        org.hotswap.agent.javassist.CannotCompileException
      • refreshProperties

        @OnResourceFileEvent(path="/",
                             filter=".*.properties")
        public void refreshProperties()
      • beanELResolverRegisterVariable

        @OnClassLoadEvent(classNameRegexp="org.zkoss.zel.BeanELResolver")
        public static void beanELResolverRegisterVariable​(org.hotswap.agent.javassist.CtClass ctClass)
                                                   throws org.hotswap.agent.javassist.CannotCompileException
        BeanELResolver contains reflection cache (bean properites).
        Throws:
        org.hotswap.agent.javassist.CannotCompileException
      • registerBeanELResolver

        public void registerBeanELResolver​(java.lang.Object beanELResolver)
      • binderImplRegisterVariable

        @OnClassLoadEvent(classNameRegexp="org.zkoss.bind.impl.BinderImpl")
        public static void binderImplRegisterVariable​(org.hotswap.agent.javassist.CtClass ctClass)
                                               throws org.hotswap.agent.javassist.CannotCompileException
        BeanELResolver contains reflection cache (bean properites).
        Throws:
        org.hotswap.agent.javassist.CannotCompileException
      • registerBinderImpl

        public void registerBinderImpl​(java.lang.Object binderImpl)
      • invalidateClassCache

        @OnClassLoadEvent(classNameRegexp=".*",
                          events=REDEFINE)
        public void invalidateClassCache()
                                  throws java.lang.Exception
        Throws:
        java.lang.Exception