Javassist (Java Programming Assistant) makes Java bytecode manipulation simple. It is a class library for editing bytecodes in Java; it enables Java programs to define a new class at runtime and to modify a class file when the JVM loads it. Unlike other similar bytecode editors, Javassist provides
... [More] two levels of API: source level and bytecode level. If the users use the source-level API, they can edit a class file without knowledge of the specifications of the Java bytecode. The whole API is designed with only the vocabulary of the Java language. You can even specify inserted bytecode in the form of source text; Javassist compiles it on the fly. On the other hand, the bytecode-level API allows the users to directly edit a class file as other editors. [Less]
fun4j brings functional programming to the JVM. It's a framework that integrates major concepts from functional programming into the Java Platform.
At its core there is a lambda-to-JVM bytecode compiler. Thanks to optimization techniques like tail code optimization (TCO) the compiler produces
... [More] code that runs as fast as hand optimized Java code. The compiler uses the excellent Java bytecode assembler ASM
On top of this compiler you'll find a functional Java framework featuring higher order functions, partial application, support for Collections and Iterators, lambda terms, closures, etc.
It's possible to define functions as lambda terms in classical LISP syntax. This avoids all the Java boilerplate code and thus improves code readability. LISP and java code are highly interoperable. [Less]
Yet Another Generic DAO layer for Java.
With support for both JPA and hibernate
For the general view you can take a look at
start up article: