29 lines
893 B
Markdown
29 lines
893 B
Markdown
# Beethoven: A library for making Java bytecode instrumentation easier
|
|
|
|
The point of this library is to offer a simple, annotation-driven way to instrument classes.
|
|
What this means is that a user of this library should never have to see
|
|
so much as a byte. Everything should be abstracted to the level of classes,
|
|
methods and fields.
|
|
|
|
## Progress:
|
|
|
|
* Method injection (replacement, in-place leading injection and in-place trailing injection)
|
|
|
|
* Field injection (access transforming and new fields)
|
|
|
|
* Target field accesses from injection class (non-primitive/reference)
|
|
|
|
* Method calls and field accesses referencing injection class elements automatically redirected to target
|
|
|
|
* Optional interface injection
|
|
|
|
* Target class method invocation
|
|
|
|
* Multiple injections per method
|
|
|
|
* In-place method instruction injection with references to previous method's return value
|
|
|
|
## TODO:
|
|
|
|
* Better tests
|