Books from amazon:
 
 

jContractor

jContractor is a 100% pure Java implementation of Design By Contract for the Java language. Contracts are written as methods that follow a simple naming convention. jContractor provides runtime contract checking by instrumenting the bytecode of classes that define contracts. jContractor can either add contract checking code to class files to be executed later, or it can instrument classes at runtime as they are loaded. All contracts are written in standard Java.

Stab

Stab is a multi-paradigm programming language designed for the Java Virtual Machine. It features JVM compatibility, implicitly typed variables, delegates, Lambda expressions, iterator blocks, Extension methods, properties and indexers, anonymous objects, language integrated queries and automatic resources management.

june

June is what ordinary Java could look like if it were simpler, more reliable, and disguised as a scripting language.

Micro Java

A compiler for the Micro Java language. French documentation only.

OHL

OHL is a Java extension that adds sub-type switching to Java as in

switch (figure) {
  case instanceof Circle {
    return "Radius: " + figure.getRadius();
  }
  case instanceof Square {
    return "Side length: " + figure.getSideLen();
  }
}

Guarana

Guarana is a reflective architecture that aims at simplicity, flexibility, security and reuse of meta-level code. It features a run-time meta-object protocol that provides for easy composition of meta-objects and allows for dynamic reconfiguration. Meta-objects can be combined through composers, that provide the glue code for them to work together, delegating control to them and resolving conflicts when they arise. Since composers are meta-objects, they can be further composed.

Dejay

Dejay is a dialect of Java that simplifies the development of distributed software applications.

ArchJava

Software architecture describes the structure of a system, enabling more effective design, program understanding, and formal analysis. ArchJava is an extension to Java that seamlessly unifies software architecture with implementation, ensuring that the implementation conforms to architectural constraints.

Gilgul

Gilgul is an extension of Java that strictly separates the notions of reference and comparison that are traditionally subsumed in the concept of object identity. This allows for the introduction of new operations that open up new degrees of flexibility during runtime by providing means for unanticipated software evolution. For example, Gilgul supports dynamic replacement of objects without the need to explicitly deal with existing references.

Javassist

Javassist (Java programming assistant) is a load-time reflective system for Java. 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 systems, Javassist provides source-level abstraction; programmers can modify a class file without detailed knowledge of the Java bytecode.