Beethoven/README.md
2020-04-19 21:39:43 +02:00

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