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
-~----------~----~----~----~------~----~------~--~---

Reply via email to