RetroJ 1.0 User's Guide
1. Overview
RetroJ is a commercial tool that enables developers to work with newer versions of Java, even if thedeployment platform uses an older version. Well-known examples are the
Java ME
and
Blu-Ray
platforms (based on the JDK 1.3 language features). In general many companies choose to be cautiouswith adopting new Java versions, preferring stability over a richer feature set.Since more recent language features (especially in JDK 1.5) enable the writing of clearer, moreexpressive code, developers get to benefit from them. At the same time, platform limitations arerespected by running RetroJ as part of the packaging/deployment process (and maintaining theconverted version as a read-only version, to avoid confusion).Since generated source code is visible to the developers, not obfuscated and maintaining formatting andcomments, they get to ensure that nothing “fishy” happened during downgrading.There are other tools that offer this type of downgrading (e.g
RetroWeaver
fromhttp://retroweaver.sourceforge.net/, open-source). But they do it at bytecode level and this black-boxnature can be an unsatisfactory aspect to some developers/companies. Numiton views RetroJ as asource-level alternative to byte-code level tools, when such an alternative is preferable to users.The RetroJ team is committed to providing professional support to its clients, as specified in the licenseagreement.RetroJ currently supports downgrades between JDK1.6 and JDK1.3 (or any combination in-between).As new Java versions are launched by Sun, future RetroJ releases will cover the freshly-introducedlanguage features.Please note that using API specific to a newer JDK is not supported by RetroJ. Such scenarios will bedetected prior to deployment, since the compilation of the downgraded code produces linkage errors.Section2of this guide explains the transformations performed by RetroJ. These are related to:
•
assertions
•
annotations
•
autoboxing/unboxing
•
enhanced FOR loops
•
generics
•
static imports
•
typesafe enums
•
varargsSection3details the RetroJ installation and usage:
•
via command-linePage 3 of 17
Leave a Comment