Applications of enhanced dynamic code evolution for Java in GUI development and dynamic aspect-oriented programming

  • Authors:
  • Thomas Würthinger;Walter Binder;Danilo Ansaloni;Philippe Moret;Hanspeter Mössenböck

  • Affiliations:
  • Johannes Kepler University, Linz, Austria;University of Lugano, Lugano, Switzerland;University of Lugano, Lugano, Switzerland;University of Lugano, Lugano, Switzerland;Johannes Kepler University, Linz, Austria

  • Venue:
  • GPCE '10 Proceedings of the ninth international conference on Generative programming and component engineering
  • Year:
  • 2010

Quantified Score

Hi-index 0.00

Visualization

Abstract

While dynamic code evolution in object-oriented systems is an important feature supported by dynamic languages, there is currently only limited support for dynamic code evolution in high-performance, state-of-the-art runtime systems for statically typed languages, such as the Java Virtual Machine. In this tool demonstration, we present the Dynamic Code Evolution VM, which is based on a recent version of Oracle's state-of-the-art Java HotSpot(TM) VM and allows unlimited changes to loaded classes at runtime. Based on the Dynamic Code Evolution VM, we developed an enhanced version of the Mantisse GUI builder (which is part of the NetBeans IDE) that allows adding GUI components without restarting the application under development. Furthermore, we redesigned the dynamic AOP framework HotWave to take advantage of the enhanced dynamic code evolution capabilities. The new version, HotWave2, now supports most AspectJ constructs, including around() advice and static cross-cutting. We will demonstrate both the enhanced Mantisse GUI builder as well as HotWave2, weaving several aspects for dynamic analysis in sizable applications at runtime.