Class ELResolverPlugin
- java.lang.Object
-
- org.hotswap.agent.plugin.elresolver.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.ObjectClear javax.el.BeanELResolver cache after any class redefinition.- Author:
- Vladimir Dvorak
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.StringPURGE_CLASS_CACHE_METHOD_NAME
-
Constructor Summary
Constructors Constructor Description ELResolverPlugin()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static voidbeanELResolverRegisterVariable(org.hotswap.agent.javassist.CtClass ctClass)Hook on BeanELResolver class and for each instance: - ensure plugin is initialized - register instances using registerBeanELResolver() methodvoidinit(org.hotswap.agent.config.PluginConfiguration pluginConfiguration)voidinvalidateClassCache(java.lang.ClassLoader appClassLoader, org.hotswap.agent.javassist.CtClass ctClass)static voidpatchJbossElSoftConcurrentHashMap(org.hotswap.agent.javassist.CtClass ctClass)static voidpatchJBossReflectionUtil(org.hotswap.agent.javassist.CtClass ctClass)voidregisterBeanELResolver(java.lang.Object beanELResolver)voidregisterJBossReflectionUtil()
-
-
-
Field Detail
-
PURGE_CLASS_CACHE_METHOD_NAME
public static final java.lang.String PURGE_CLASS_CACHE_METHOD_NAME
- See Also:
- Constant Field Values
-
-
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.CannotCompileExceptionHook 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.NotFoundExceptionorg.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
-
-