#existing API

dirRoot_old @OLDROOT@/
name_old gwt15userApi
#sourceFiles and excludedFiles are specified as colon-separated list of files
sourceFiles_old dev/core/super\
:user/src\
:user/super\

excludedFiles_old user/src/com/google/gwt/benchmarks/BenchmarkReport.java\
:user/src/com/google/gwt/benchmarks/BenchmarkShell.java\
:user/src/com/google/gwt/benchmarks/client/Benchmark.java\
:user/src/com/google/gwt/benchmarks/rebind\
:user/src/com/google/gwt/i18n/rebind\
:user/src/com/google/gwt/i18n/tools\
:user/src/com/google/gwt/junit/GWTMockUtilities.java\
:user/src/com/google/gwt/junit/GWTDummyBridge.java\
:user/src/com/google/gwt/junit/JUnitMessageQueue.java\
:user/src/com/google/gwt/junit/JUnitShell.java\
:user/src/com/google/gwt/junit/RunStyle.java\
:user/src/com/google/gwt/junit/RunStyleExternalBrowser.java\
:user/src/com/google/gwt/junit/RunStyleLocalHosted.java\
:user/src/com/google/gwt/junit/RunStyleLocalWeb.java\
:user/src/com/google/gwt/junit/RunStyleManual.java\
:user/src/com/google/gwt/junit/RunStyleRemote.java\
:user/src/com/google/gwt/junit/RunStyleRemoteWeb.java\
:user/src/com/google/gwt/junit/RunStyleSelenium.java\
:user/src/com/google/gwt/junit/client/GWTTestCase.java\
:user/src/com/google/gwt/junit/client/impl/GWTRunner.java\
:user/src/com/google/gwt/junit/rebind\
:user/src/com/google/gwt/junit/remote\
:user/src/com/google/gwt/junit/server\
:user/src/com/google/gwt/junit/tools\
:user/src/com/google/gwt/user/client/rpc/core/java/util/LinkedHashMap_CustomFieldSerializer.java\
:user/src/com/google/gwt/user/rebind\
:user/src/com/google/gwt/user/server\
:user/src/com/google/gwt/user/tools\

##############################################
#new Api

dirRoot_new ./
name_new gwt16userApi
#sourceFiles and excludedFiles are specified as colon-separated list of files
sourceFiles_new dev/core/super\
:user/src\
:user/super\

excludedFiles_new user/src/com/google/gwt/benchmarks/BenchmarkReport.java\
:user/src/com/google/gwt/benchmarks/BenchmarkShell.java\
:user/src/com/google/gwt/benchmarks/client/Benchmark.java\
:user/src/com/google/gwt/benchmarks/rebind\
:user/src/com/google/gwt/i18n/server\
:user/src/com/google/gwt/i18n/rebind\
:user/src/com/google/gwt/i18n/tools\
:user/src/com/google/gwt/junit/GWTMockUtilities.java\
:user/src/com/google/gwt/junit/GWTDummyBridge.java\
:user/src/com/google/gwt/junit/JUnitMessageQueue.java\
:user/src/com/google/gwt/junit/JUnitShell.java\
:user/src/com/google/gwt/junit/RunStyle.java\
:user/src/com/google/gwt/junit/RunStyleExternalBrowser.java\
:user/src/com/google/gwt/junit/RunStyleLocalHosted.java\
:user/src/com/google/gwt/junit/RunStyleLocalWeb.java\
:user/src/com/google/gwt/junit/RunStyleManual.java\
:user/src/com/google/gwt/junit/RunStyleNoServerHosted.java\
:user/src/com/google/gwt/junit/RunStyleRemote.java\
:user/src/com/google/gwt/junit/RunStyleRemoteWeb.java\
:user/src/com/google/gwt/junit/RunStyleSelenium.java\
:user/src/com/google/gwt/junit/client/GWTTestCase.java\
:user/src/com/google/gwt/junit/client/impl/GWTRunner.java\
:user/src/com/google/gwt/junit/rebind\
:user/src/com/google/gwt/junit/remote\
:user/src/com/google/gwt/junit/server\
:user/src/com/google/gwt/junit/tools\
:user/src/com/google/gwt/resources/css\
:user/src/com/google/gwt/resources/ext\
:user/src/com/google/gwt/resources/rebind\
:user/src/com/google/gwt/resources/rg\
:user/src/com/google/gwt/user/client/rpc/core/java/util/LinkedHashMap_CustomFieldSerializer.java\
:user/src/com/google/gwt/user/rebind\
:user/src/com/google/gwt/user/server\
:user/src/com/google/gwt/user/tools\

##############################################
#excluded packages
excludedPackages com.google.gwt.core.client.impl\
:com.google.gwt.i18n.client.impl\
:com.google.gwt.i18n.client.impl.cldr\
:com.google.gwt.i18n.client.impl.plurals\
:com.google.gwt.user.client.impl\
:com.google.gwt.user.client.rpc.impl\
:com.google.gwt.user.client.ui.impl\
:com.google.gwt.xml.client.impl\

##############################################
#Api  whitelist
# when adding to the white-list, include comments as to why the addition is
# being made. 

# the api-checker is currently checking overloadeded methods that can be
# overriden, and there are multiple overloaded versions of
# StringBuilder::append(..) 
# TODO(amitmanjhi): Solving this issue correctly in all cases seems
# to be hard. Come back and fix this issue, if more such cases come up. 
java.lang.StringBuilder::append(Ljava/lang/StringBuffer;) OVERRIDABLE_METHOD_ARGUMENT_TYPE_CHANGE
com.google.gwt.user.client.ui.Button::Button(Ljava/lang/String;Lcom/google/gwt/user/client/ui/ClickListener;) OVERLOADED_METHOD_CALL
com.google.gwt.user.client.ui.ToggleButton::ToggleButton(Lcom/google/gwt/user/client/ui/Image;Lcom/google/gwt/user/client/ui/Image;Lcom/google/gwt/user/client/ui/ClickListener;) OVERLOADED_METHOD_CALL 
com.google.gwt.user.client.ui.Tree::setImageBase(Ljava/lang/String;) MISSING
com.google.gwt.i18n.client.LocaleInfo::getAvailableLocaleNames() FINAL_ADDED
com.google.gwt.i18n.client.LocaleInfo::getCurrentLocale() FINAL_ADDED
com.google.gwt.i18n.client.LocaleInfo::getLocaleName() FINAL_ADDED
com.google.gwt.i18n.client.LocaleInfo::isRTL() FINAL_ADDED

# The following 2 nested classes should never have been public to begin with.
com.google.gwt.user.client.ui.UIObject.DebugIdImpl MISSING
com.google.gwt.user.client.ui.UIObject.DebugIdImplEnabled MISSING

