improving aspect-oriented programming with dynamic code evolution in an enhanced java virtual machine
Dynamic aspect-oriented programming (AOP) is a powerful approach for integrating new features into running applications without disrupting their execution. In Java, dynamic AOP frameworks often use runtime weaving of previously loaded classes, which is however severely restricted because of limitations in current Java Virtual Machines (JVMs). These constraints make it very difficult or even impossible to support important AOP features such as static join point information, around() advice, or explicit structural modifications of classes and the class hierarchy. In this position paper we advocate the idea of using advanced dynamic code evolution features to improve dynamic AOP. We present an enhanced JVM, based on a state-of-the-art production JVM, which offers unrestricted class redefiniton. Thanks to this feature, we are able to redesign the dynamic AOP framework HotWave in order to overcome the aforementioned restrictions in the programming model.
dynamic code evolution java virtual machine dynamic aspect-oriented programming runtime weaving dynamic software updates hotswapping