dcevm

HotSwapAgent plugin - plugin class not found

若如初见. 提交于 2020-01-24 11:20:28
问题 I have been developing custom plugin for HotSwapAgent, but encountered weird issue with classloader missing plugin class. This is the exception thrown by ####<Feb 9, 2015 12:45:54 AM PST> <Notice> <Stdout> <testbox.mycompany> <AdminServer> <Thread-87> <<WLS Kernel>> <> <> <1423471554463> <BEA-000000> <HOTSWAP AGENT: 0:45:54.463 ERROR (org.hotswap.agent.config.PluginRegistry) - Error in plugin initial processing for plugin package 'mycompany.infrastructure.hotswap.agent' java.lang

HotSwapAgent plugin - plugin class not found

五迷三道 提交于 2020-01-24 11:19:46
问题 I have been developing custom plugin for HotSwapAgent, but encountered weird issue with classloader missing plugin class. This is the exception thrown by ####<Feb 9, 2015 12:45:54 AM PST> <Notice> <Stdout> <testbox.mycompany> <AdminServer> <Thread-87> <<WLS Kernel>> <> <> <1423471554463> <BEA-000000> <HOTSWAP AGENT: 0:45:54.463 ERROR (org.hotswap.agent.config.PluginRegistry) - Error in plugin initial processing for plugin package 'mycompany.infrastructure.hotswap.agent' java.lang

Solution for debugging DCEVM enabled sbt-scala applications in IntelliJ IDEA

廉价感情. 提交于 2019-12-24 05:31:14
问题 I use DCEVM to reload classes in my Scala application. Sbt has a nice feature that it can auto-compile classes when their source code changes. So what I do is I open up two sbt instances and I run ~;compile;copy-resources in the first instance to auto-compile, and run in the second instance. To debug, I can use the remote debugger tool in IntelliJ that works pretty well except for one (but important) thing: whenever sbt reloads a class, IntelliJ no longer stops at break points. I have to

Strange java.beans.Introspector behavior on WebLogic with DCEVM and HotSwapAgent

China☆狼群 提交于 2019-12-07 07:30:54
问题 I am running WebLogic on JVM 1.7 with DCEVM (full implementation) and HotSwapAgent with custom plugin that gets triggered on every onClassLoad. I run into problems with Freemarker, which uses java.beans.Introspector. What I discovered is the fact that when I call Introspector.flushCaches on the method called by HotSwapAgent (through ReflectionCommand), then the BeanInfo in Introspector is invalidated properly (checked with debugger in that thread). However when I make request to the WLS

Freemarker removeIntrospectionInfo does not work with DCEVM after model hotswap

拥有回忆 提交于 2019-12-07 06:13:40
问题 I am using Freemarker and DCEVM+HotSwapManager agent. This basically allows me to hotswap classes even when adding/removing methods. Everything works like charm until Freemarker uses hotswapped class as model. It's throwing freemarker.ext.beans.InvalidPropertyException: No such bean property on me even though reflection shows that the method is there (checked during debug session). I am using final Method clearInfoMethod = beanWrapper.getClass().getDeclaredMethod("removeIntrospectionInfo",

Strange java.beans.Introspector behavior on WebLogic with DCEVM and HotSwapAgent

孤者浪人 提交于 2019-12-05 15:56:22
I am running WebLogic on JVM 1.7 with DCEVM (full implementation) and HotSwapAgent with custom plugin that gets triggered on every onClassLoad. I run into problems with Freemarker, which uses java.beans.Introspector. What I discovered is the fact that when I call Introspector.flushCaches on the method called by HotSwapAgent (through ReflectionCommand), then the BeanInfo in Introspector is invalidated properly (checked with debugger in that thread). However when I make request to the WLS appserver, then Introspector for the worker thread shows the old values! This seems like some thread-local

Freemarker removeIntrospectionInfo does not work with DCEVM after model hotswap

邮差的信 提交于 2019-12-05 08:40:24
I am using Freemarker and DCEVM+HotSwapManager agent. This basically allows me to hotswap classes even when adding/removing methods. Everything works like charm until Freemarker uses hotswapped class as model. It's throwing freemarker.ext.beans.InvalidPropertyException: No such bean property on me even though reflection shows that the method is there (checked during debug session). I am using final Method clearInfoMethod = beanWrapper.getClass().getDeclaredMethod("removeIntrospectionInfo", Class.class); clearInfoMethod.setAccessible(true); clearInfoMethod.invoke(clazz); to clear the cache, but