While Java 1.4 will reach its End of Service Life
in October 2008 it is still widely used for various reasons
including lack of Java 5 support by application servers like WAS 6.0 and operating systems like Mac OS X 10.3.
is a tool that makes Java 5 applications compatible with Java 1.4, Java 1.3 and other environments. It supports all Java 5 language features and a significant part of the Java 5 API on both J2SE 1.4 and J2SE 1.3. Supported features include generics, annotations, reflection on generics and annotations, enums, autoboxing, for-each loop, varargs, covariant return types, formatted output, static import, concurrency utilities, and collections framework enhancements.
Retrotranslator 1.2.7 adds support for Java 5 semantics of volatile and final fields using synchronization on objects held in synthetic static fields, which means that even Java 1.1 VMs should behave correctly with respect to JSR-133. While this feature has negative impact on performance it makes it possible not only to develop on Java 5 and deploy onto Java 1.4 but to use Java 5 libraries on Java 1.4 or earlier JVMs.