Author: amitman...@google.com Date: Thu Mar 26 10:32:17 2009 New Revision: 5089
Modified: wiki/GwtJavaApiCompatibilityChecker.wiki Log: Edited wiki page through web user interface. Modified: wiki/GwtJavaApiCompatibilityChecker.wiki ============================================================================== --- wiki/GwtJavaApiCompatibilityChecker.wiki (original) +++ wiki/GwtJavaApiCompatibilityChecker.wiki Thu Mar 26 10:32:17 2009 @@ -107,9 +107,7 @@ = Discussion = The !ApiCompatibilityChecker tool uses !TypeOracle to compute the API differences. !TypeOracle in turn requires access to the java source code. Thus the tool can only work when Java source is available. An alternative to !TypeOracle would be to use Java reflection which works on class files, and would not have required access to the source files. However, because of three disadvantages, we chose !TypeOracle over Java relfection: - # One use case for the tool was to make the JRE library support that GWT offers be compatible to a real JRE implementation. However, the JRE libraries that GWT currently offers are not complete, and are currently not offered as class files. The use of Java reflection would have prevented us from running the tool to compare GWT's current support of JRE with a real JRE. - # Annotations that have a retention policy of SOURCE are only present in source files -- they are discarded by the compiler during the generation of class files. For example, the @deprecated annotation falls in this category. This annotation is particularly useful for the API Compatibility Checker tool, since the tool can ignore API changes in members, classes, or packages that are deprecated. The tool currently does not support annotations, but with little effort, it can be supported in the next version. # With !TypeOracle, we could tap into the already existing GWT compiler infrastructure. We could not find an analogous tool (with compatible licenses) in case of Java Reflection. (Japize, a tool which uses Java reflection to check for binary compatibility, could have been suitable, but the tool was under a GPL license.) With Reflection, everything would have to be developed from scratch. = References = --~--~---------~--~----~------------~-------~--~----~ http://groups.google.com/group/Google-Web-Toolkit-Contributors -~----------~----~----~----~------~----~------~--~---