JAVASSIST [Chi00] and OPENJAVA [TCKI00] are
two approaches to extending JAVA with load-time structural
reflection, i.e., the ability of modifying classes at runtime
prior to instantiation. OPENJAVA promotes a compile-time meta-object
protocol [Chi95] based on an extension of
java.lang.Class, and makes use of the SUN JAVA
compiler, while JAVASSIST provides an extended
Classloader supporting the creation of new methods as copies
of existing ones.
We have however refrained from using JAVASSIST or OPENJAVA, because our static filters represent very specific classes which can be generated without any language extension.