Author: [EMAIL PROTECTED] Date: Tue Dec 9 12:52:36 2008 New Revision: 4283
Modified: wiki/GwtJavaApiCompatibilityChecker.wiki Log: Edited wiki page through web user interface. Modified: wiki/GwtJavaApiCompatibilityChecker.wiki ============================================================================== --- wiki/GwtJavaApiCompatibilityChecker.wiki (original) +++ wiki/GwtJavaApiCompatibilityChecker.wiki Tue Dec 9 12:52:36 2008 @@ -46,7 +46,8 @@ {{{ java ApiCompatibilityChecker configFile -The ApiCompatibilityChecker tool requires a config file as an argument. The config file must specify two repositories of java source files: '_old' and '_new', which are to be compared for API source compatibility. +The ApiCompatibilityChecker tool requires a config file as an argument. The config file must specify two repositories of +java source files: '_old' and '_new', which are to be compared for API source compatibility. An optional whitelist is present at the end of the config file. The format of the whitelist is same as the output of the tool without the whitelist. @@ -68,11 +69,12 @@ excludeFiles_new user/super/com/google/gwt/junit }}} - 2. Check compatibility: When ApiComptabilityChecker is provided a configuration file with information about the two repositories, it checks them for source compatibility and outputs the API difference. The API difference is a list of API change messages, with each API change message listed on a separate line. An API change message specifies two things: (i) a java package, class, method, or field in the existing API, (ii) the manner in which the API has changed. For example, an API change message could be "java.net MISSING" indicating that the package java.net has been removed. Each API change message is followed by an optional string containing additional information about the API change. + # Check compatibility: When ApiComptabilityChecker is provided a configuration file with information about the two repositories, it checks them for source compatibility and outputs the API difference. The API difference is a list of API change messages, with each API change message listed on a separate line. An API change message specifies two things: (i) a java package, class, method, or field in the existing API, (ii) the manner in which the API has changed. For example, an API change message could be "java.net MISSING" indicating that the package java.net has been removed. Each API change message is followed by an optional string containing additional information about the API change. -{{{ java ApiCompatibilityChecker configFile }}} +{{{ java ApiCompatibilityChecker configFile +}}} - 3. Check compatibility with expected failures whitelisted: The tool can handle a whitelist of API changes, specified in the "whitelist" section of the config file. These changes are excluded from the output. + # Check compatibility with expected failures whitelisted: The tool can handle a whitelist of API changes, specified in the "whitelist" section of the config file. These changes are excluded from the output. We plan to put the tool into the GWT build, so that any update to the GWT trunk is checked for API compatibility against a reference version of GWT. Additionally, the tool will be used to check whether the JRE library support that GWT offers is compatible with the real JRE libraries. Ensuring this compatibility will allow developers to develop utility software that can be deployed on both the server-side and the client-side. @@ -109,7 +111,7 @@ # 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 = - 1. http://wiki.eclipse.org/index.php/Evolving_Java-based_APIs - 2. http://java.sun.com/docs/books/jls/third_edition/html/binaryComp.html - 3. http://clirr.sourceforge.net/ - 4. http://sab39.netreach.com/Software/Japitools/Usage/japize/59/ \ No newline at end of file + # http://wiki.eclipse.org/index.php/Evolving_Java-based_APIs + # http://java.sun.com/docs/books/jls/third_edition/html/binaryComp.html + # http://clirr.sourceforge.net/ + # http://sab39.netreach.com/Software/Japitools/Usage/japize/59/ \ No newline at end of file --~--~---------~--~----~------------~-------~--~----~ http://groups.google.com/group/Google-Web-Toolkit-Contributors -~----------~----~----~----~------~----~------~--~---