[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[aspectj-dev] dynamic weaving after load-time weaving


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 comments?

Best regards,