Toggle Main Menu Toggle Search

Open Access padlockePrints

Kava - A Reflective Java Based on Bytecode Rewriting

Lookup NU author(s): Ian Welch, Dr Robert Stroud


Full text for this publication is not currently held within this repository. Alternative links are provided below where available.


Current implementations of reflective Java typically either require access to source code, or require a modified Java platform. This makes them unsuitable for applying reflection to Commercial-off-the-Shelf (COTS) systems. The high level nature of Java bytecode makes on-the-fly rewritings of class files feasible and this has been exploited by a number of authors. However, in practice working at bytecode level is error prone and leads to fragile code. We propose using metaobject protocols in order to specify behavioural changes and use standard bytecode rewritings to implement the changes. We have developed a reflective Java called Kava that provides behavioural runtime reflection through the use of bytecode rewriting of Java classes. In this paper we discuss the binary rewriting approach, provide an overview of the Kava system and provide an example of an application of Kava.

Publication metadata

Author(s): Welch IS, Stroud RJ

Editor(s): Cazzola, W., Stroud, R.J., Tisato, F.

Publication type: Conference Proceedings (inc. Abstract)

Publication status: Published

Conference Name: 1st OOPSLA Workshop on Reflection and Software Engineering (OORaSE)

Year of Conference: 2000

Pages: 155-167

ISSN: 0302-9743 (Print) 1611-3349 (Online)

Publisher: Springer-Verlag


DOI: 10.1007/3-540-45046-7_9

Library holdings: Search Newcastle University Library for this item

Series Title: Lecture Notes in Computer Science

ISBN: 9783540677611