Class ELResolverPlugin


  • @Plugin(name="ELResolver",
            group="groupELResolver",
            fallback=true,
            description="Purge BeanELResolver class cache on any class redefinition.",
            testedVersions="2.2",
            expectedVersions="2.2")
    @Versions(maven={@Maven(value="[1.0,)",artifactId="jboss-el-api_2.2_spec",groupId="org.jboss.spec.javax.el"),@Maven(value="[2.0,)",artifactId="juel",groupId="de.odysseus.juel"),@Maven(value="[3.0,)",artifactId="javax.el-api",groupId="javax.el")},manifest={@Manifest(value="[1.0,)",versionName="JBoss-EL-Version",names=),@Manifest(value="[2.0,)",versionName="Specification-Version",names={,}),@Manifest(value="[2.0,)",versionName="Bundle-Version",names=),@Manifest(value="[8.0,)",versionName="Bundle-Version",names={,}),@Manifest(value="[3.0,)",versionName="Bundle-Version",names={,})})
    public class ELResolverPlugin
    extends java.lang.Object
    Clear javax.el.BeanELResolver cache after any class redefinition.
    Author:
    Vladimir Dvorak
    • Field Detail

      • PURGE_CLASS_CACHE_METHOD_NAME

        public static final java.lang.String PURGE_CLASS_CACHE_METHOD_NAME
        See Also:
        Constant Field Values
    • Constructor Detail

      • ELResolverPlugin

        public ELResolverPlugin()
    • Method Detail

      • registerJBossReflectionUtil

        public void registerJBossReflectionUtil()
      • init

        @Init
        public void init​(org.hotswap.agent.config.PluginConfiguration pluginConfiguration)
      • beanELResolverRegisterVariable

        @OnClassLoadEvent(classNameRegexp="javax.el.BeanELResolver")
        public static void beanELResolverRegisterVariable​(org.hotswap.agent.javassist.CtClass ctClass)
                                                   throws org.hotswap.agent.javassist.CannotCompileException
        Hook on BeanELResolver class and for each instance: - ensure plugin is initialized - register instances using registerBeanELResolver() method
        Throws:
        org.hotswap.agent.javassist.CannotCompileException
      • patchJBossReflectionUtil

        @OnClassLoadEvent(classNameRegexp="org.jboss.el.util.ReflectionUtil")
        public static void patchJBossReflectionUtil​(org.hotswap.agent.javassist.CtClass ctClass)
                                             throws org.hotswap.agent.javassist.NotFoundException,
                                                    org.hotswap.agent.javassist.CannotCompileException
        Throws:
        org.hotswap.agent.javassist.NotFoundException
        org.hotswap.agent.javassist.CannotCompileException
      • patchJbossElSoftConcurrentHashMap

        @OnClassLoadEvent(classNameRegexp="javax.el.BeanELResolver\\$SoftConcurrentHashMap")
        public static void patchJbossElSoftConcurrentHashMap​(org.hotswap.agent.javassist.CtClass ctClass)
                                                      throws org.hotswap.agent.javassist.CannotCompileException
        Throws:
        org.hotswap.agent.javassist.CannotCompileException
      • registerBeanELResolver

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

        @OnClassLoadEvent(classNameRegexp=".*",
                          events=REDEFINE)
        public void invalidateClassCache​(java.lang.ClassLoader appClassLoader,
                                         org.hotswap.agent.javassist.CtClass ctClass)
                                  throws java.lang.Exception
        Throws:
        java.lang.Exception