Many people have criticized the lack of assertions in Java. Assertion support was voted second on the list 'Request For Enhancements'. This bug is closed now and the (beta) release 1.4 of Java 2 has assertion support. However, the assertion support of 1.4 is very primitive, no pre/post conditions or invariants.
So other people requested [http://developer.java.sun.com/developer/bugParade/bugs/4449383.html]`Support for Design by Contract Beyond a Simple Assertion Mechanism'. It is currently the voted 9th on the list 'Request For Enhancements'. Jass (acronym: Java with assertions, spoken: jazz - like the music) is a precompiler that supports these extended assertions for Java. The concepts of design by contract from Bertrand Meyer have been transferred to Java and extended with new features. So even if you switched to the Java 1.4 version, Jass can still do a lot for you.
The Jass precompiler is written in 100% pure Java and can be downloaded from this pages. It is an improvement of the language extension JaWA designed by Dieter Meemken.
Jass supports the 'design by contract' with the following features:
Jass was developed by Dipl.-Inform. Detlef Bartetzko at his mastersthesis. The concept of Trace Assertions was added by Dipl.-Infom. Michael Plath as part of his mastersthesis. The development was supported by Dr. Clemens Fischer. The concept of Trace-Assertions was developed by Dr.Clemens Fischer at his PhD thesis.
Jass is a product of the [http://csd.informatik.uni-oldenburg.de/eindex.html]Correct System Design Group .
Please send questions comments and bugs to firstname.lastname@example.org.
If you want to be informed about jass, please subscribe to the jass mailing-list. Send a mail to email@example.com with the subject `subscribe jass-list'; to unsubscribe use the subject `unsubscribe jass-list'.
Messages to the list must be send to firstname.lastname@example.org. Only subscribers of the list will be able to post messages. Therefore this list usually has low traffic (no SPAM since we switched to allow subscribers only)!