The Java Object Instrumentation Environment
|cs.duke.edu :: ISSG :: JOIE||last update: 05/01/2003|
JOIE is a framework for safe Java bytecode transformation. It provides both low-level and high-level functionality to extend or adapt compiled Java classes. The low-level interface allows to manipulate the bytecodes itself whereas the high-level interface provides methods for inserting new interfaces, fields, methods or whole code splices.
Our goal is to provide simple yet powerful interfaces for bytecode transformation whereas implementing safe mechanisms for bytecode manipulation has a top priority. Second, we try to hide as much of the complexity as possible to enable even users unfamiliar with the JVM and bytecode to apply bytecode transformations easily.
JOIE is still work in progress and we hope to reach the status "version 1.0" soon.
Projects using JOIE
There are different projects and API's that deal with Java bytecode transformation. Although they all seem to have similar goals the functionality might differ significantly.
Aspect Oriented Programming (AOP) is a concept that might be compared to bytecode transformation. In fact, AOP has a completely different approach (it extends the semantics of the Java programming language and the transformation is applied at compile time) but the results are similar.