User-agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.5) Gecko/20031007
since my implementation of load-time weaving for the Eclipse runtime
seem to run fine I was thinking about trying out some dynamic stuff. In
the presence of dynamically installed and deinstalled plugins the issue
of dynamic weaving and unweaving becomes more and more interesting to me.
At the AspectJ BoF at OOPSLA I asked for ideas how to realize dynamic
weaving for AspectJ and Jim told me that it might be possible via class
hotswapping. This fascinated me during the past weeks and I just wanna
to share my current ideas and results with you.
I implemented a prototype that allows you to hotswap code in the running
application via a small host application and the debug interface. My
first thought was that this could possibly be used for dynamic weaving.
But the current VM implementations allows you to change method
implementations only. The IBM J9 VM does more, it allows you to
add/remove methods from the class. But no single VM allows real schema
evolution (which could be quite complicated, I know). Even the JSR 163
document says that this will not be implemented in the next version.
But the AspectJ weaving stuff seem to need some more modifications to
classes than method body changes. Therefore I have now idea how the
hotswap idea could work right now or in the near future. Any ideas or