Controlled, systematic, and efficient code replacement for running Java programs
We present a system that performs reversible and systematic changes to running Java applications without requiring them to be shutdown. PROSE is motivated by scenarios such as hotfixes, online program instrumentation and debugging, and evolution of critical legacy applications. Modifications take the form of replacement method bodies, and can use both type-based and regular expression patterns to select code for replacement. New code can make use of replaced method implementations cleanly, facilitating code evolution. Changes are composable, and may be reordered or selectively withdrawn at any time. Furthermore, the modifications are expressed as Java classes, providing additional development benefits. We describe the architecture of PROSE, the challenges of using aggressive inlining to achieve performance, and use standard benchmarks to demonstrate code performance comparable (or better than) compile-time systems from the Aspect-Oriented Programming community. Show more
Journal / seriesTechnical Report / ETH Zurich, Department of Computer Science
PublisherETH, Swiss Federal Institute of Technology Zurich, Institute for Pervasive Computing
SubjectDynamic adaptation; Method code replacement at run-time; controlled; Systematic; Efficient; AOP
Organisational unit02150 - Dep. Informatik / Dep. of Computer Science
NotesTechnicals Reports D-Infk. See also http://e-citations.ethbib.ethz.ch/view/pub:22471. See also http://e-citations.ethbib.ethz.ch/view/pub:18019.
MoreShow all metadata