This patch updates the following:
i) Ensures that generated units, if they are the same, are not compiled again.
Does this in a resource-efficient way: without holding on to the jdt structures
(significant memory overhead) and without signficant CPU overhead. Adds test
cases for confirming the refresh behavior.
ii) cleans up the implementation of how TypeOracle tracks ParameterizedTypes,
ArrayTypes, and wild-card types by using appropriate variants of apache's
AbstractReferenceMap.Adds manual tests for verifying what different variants
do. Fixes parameterizedTypes map to use explicit objects keys that enforce
identity and don't have the problems associated with generating unique string
keys.
iii) Cleans up the invalidator code that invalidates a unit if it refers a
'invalid' unit.
iv) Adds the code for handling binary references. Adds test cases for checking
the handling of binary references.

Patch by: amitmanjhi, scottb (pair prog)
Review by: scottb, amitmanjhi

git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@5048 8db76d5a-ed1c-0410-87a9-c151d255dfc7
14 files changed