#existing API

# dirRoot_old is missing because refJars are being supplied
name_old gwt20userApi
#sourceFiles is specified as colon-separated list of files
sourceFiles_old com/google/gwt

#excludedFiles is specified as colon-separated ant patterns
excludedFiles_old com/google/gwt/benchmarks/BenchmarkReport.java\
:com/google/gwt/benchmarks/BenchmarkShell.java\
:com/google/gwt/benchmarks/client/Benchmark.java\
:com/google/gwt/core/ext/**\
:com/google/gwt/dev/*.java\
:com/google/gwt/dev/asm/**\
:com/google/gwt/dev/cfg/**\
:com/google/gwt/dev/generator/**\
:com/google/gwt/dev/javac/**\
:com/google/gwt/dev/jdt/**\
:com/google/gwt/dev/jjs/*.java\
:com/google/gwt/dev/jjs/ast/**\
:com/google/gwt/dev/jjs/impl/**\
:com/google/gwt/dev/js/**\
:com/google/gwt/dev/resource/**\
:com/google/gwt/dev/shell/**\
:com/google/gwt/dev/ui/**\
:com/google/gwt/dev/util/**\
:com/google/gwt/resources/css/**\
:com/google/gwt/resources/ext/**\
:com/google/gwt/resources/rg/**\
:com/google/gwt/util/**\
:com/google/gwt/soyc/**\
:**/linker/**\
:**/rebind/**\
:**/remote/**\
:**/server/**\
:**/tools/**\
:com/google/gwt/core/client/impl/WeakMapping.java\
:com/google/gwt/junit/*.java\
:com/google/gwt/junit/client/GWTTestCase.java\
:com/google/gwt/junit/client/impl/GWTRunner.java\
:com/google/gwt/regexp/shared/**\
:com/google/gwt/rpc/client/impl/ClientWriterFactory.java\
:com/google/gwt/rpc/client/impl/EscapeUtil.java\
:com/google/gwt/uibinder/attributeparsers/*.java\
:com/google/gwt/uibinder/elementparsers/*.java\
:com/google/gwt/uibinder/testing/*.java\
:com/google/gwt/user/client/rpc/core/java/util/LinkedHashMap_CustomFieldSerializer.java\

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

dirRoot_new ./
name_new gwt21userApi
#sourceFiles is specified as colon-separated list of files
sourceFiles_new dev/core/super\
:user/src\
:user/super\

#excludedFiles is specified as colon-separated ant patterns
# The last 3 entries exclude the validation stuff.
# Bug: http://code.google.com/p/google-web-toolkit/issues/detail?id=5566
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\
:**/linker/**\
:**/rebind/**\
:**/server/**\
:**/tools/**\
:user/src/com/google/gwt/regexp/shared/**\
:user/src/com/google/gwt/autobean/shared/impl/StringQuoter.java\
:user/src/com/google/gwt/core/client/impl/WeakMapping.java\
:user/src/com/google/gwt/junit/*.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/remote\
:user/src/com/google/gwt/resources/css\
:user/src/com/google/gwt/resources/ext\
:user/src/com/google/gwt/resources/rg\
:user/src/com/google/gwt/requestfactory/shared/impl/MessageFactoryHolder.java\
:user/src/com/google/gwt/rpc/client/impl/ClientWriterFactory.java\
:user/src/com/google/gwt/rpc/client/impl/EscapeUtil.java\
:user/src/com/google/gwt/safehtml/shared/SafeHtmlHostedModeUtils.java\
:user/src/com/google/gwt/user/client/rpc/core/java/util/LinkedHashMap_CustomFieldSerializer.java\
:user/src/com/google/gwt/uibinder/attributeparsers\
:user/src/com/google/gwt/uibinder/elementparsers\
:user/src/com/google/gwt/uibinder/testing\
:user/src/com/google/gwt/util/regexfilter\
:user/src/javax\
:user/src/org\
:user/src/com/google/gwt/validation/

##############################################
#excluded packages
excludedPackages com.google.gwt.benchmarks.client.impl\
: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.junit.client.impl\
: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.

# Added repeating FinallyCommand.
com.google.gwt.core.client.Scheduler::scheduleFinally(Lcom/google/gwt/core/client/Scheduler$ScheduledCommand;) OVERLOADED_METHOD_CALL

# Adding StackLayoutPanel.add overrides.
com.google.gwt.user.client.ui.StackLayoutPanel::add(Lcom/google/gwt/user/client/ui/Widget;Lcom/google/gwt/user/client/ui/Widget;D) OVERLOADED_METHOD_CALL

# Removing HTTPRequest.
com.google.gwt.user.client.HTTPRequest MISSING

# SafeHtml adds a safe alternative to the raw html/string methods in widgets.
# This requires very similar method signatures: For every method(String html), 
# there needs to be: method(SafeHtml html), etc.
# Null is not acceptable to any of these methods, so adding the overload is
# unlikely to break any code besides possibly test mocks.
com.google.gwt.user.client.ui.Anchor::setHTML(Ljava/lang/String;) OVERLOADED_METHOD_CALL
com.google.gwt.user.client.ui.ButtonBase::setHTML(Ljava/lang/String;) OVERLOADED_METHOD_CALL
com.google.gwt.user.client.ui.CaptionPanel::CaptionPanel(Ljava/lang/String;) OVERLOADED_METHOD_CALL
com.google.gwt.user.client.ui.CaptionPanel::setCaptionHTML(Ljava/lang/String;) OVERLOADED_METHOD_CALL
com.google.gwt.user.client.ui.CheckBox::setHTML(Ljava/lang/String;) OVERLOADED_METHOD_CALL
com.google.gwt.user.client.ui.CustomButton::setHTML(Ljava/lang/String;) OVERLOADED_METHOD_CALL
com.google.gwt.user.client.ui.DialogBox::setHTML(Ljava/lang/String;) OVERLOADED_METHOD_CALL
com.google.gwt.user.client.ui.HTML::setHTML(Ljava/lang/String;) OVERLOADED_METHOD_CALL
com.google.gwt.user.client.ui.HTMLPanel::HTMLPanel(Ljava/lang/String;) OVERLOADED_METHOD_CALL
com.google.gwt.user.client.ui.HTMLTable::setHTML(IILjava/lang/String;) OVERLOADED_METHOD_CALL
com.google.gwt.user.client.ui.Hyperlink::Hyperlink(Ljava/lang/String;Ljava/lang/String;) OVERLOADED_METHOD_CALL
com.google.gwt.user.client.ui.Hyperlink::setHTML(Ljava/lang/String;) OVERLOADED_METHOD_CALL
com.google.gwt.user.client.ui.InlineHyperlink::InlineHyperlink(Ljava/lang/String;Ljava/lang/String;) OVERLOADED_METHOD_CALL
com.google.gwt.user.client.ui.MenuItem::setHTML(Ljava/lang/String;) OVERLOADED_METHOD_CALL
com.google.gwt.user.client.ui.RadioButton::RadioButton(Ljava/lang/String;Ljava/lang/String;) OVERLOADED_METHOD_CALL
com.google.gwt.user.client.ui.ResetButton::ResetButton(Ljava/lang/String;Lcom/google/gwt/event/dom/client/ClickHandler;) OVERLOADED_METHOD_CALL
com.google.gwt.user.client.ui.RichTextArea::setHTML(Ljava/lang/String;) OVERLOADED_METHOD_CALL
com.google.gwt.user.client.ui.StackPanel::setStackText(ILjava/lang/String;) OVERLOADED_METHOD_CALL
com.google.gwt.user.client.ui.SubmitButton::SubmitButton(Ljava/lang/String;Lcom/google/gwt/event/dom/client/ClickHandler;) OVERLOADED_METHOD_CALL
com.google.gwt.user.client.ui.TabBar::setTabHTML(ILjava/lang/String;) OVERLOADED_METHOD_CALL
com.google.gwt.user.client.ui.TabLayoutPanel::setTabHTML(ILjava/lang/String;) OVERLOADED_METHOD_CALL
com.google.gwt.user.client.ui.TreeItem::setHTML(Ljava/lang/String;) OVERLOADED_METHOD_CALL

# Change signature for native long from double[2] to LongEmul{l=int,m=int,h=int}
com.google.gwt.lang.LongLib::RUN_IN_JVM MISSING
com.google.gwt.lang.LongLib::add([D[D) MISSING
com.google.gwt.lang.LongLib::and([D[D) MISSING
com.google.gwt.lang.LongLib::compare([D[D) MISSING
com.google.gwt.lang.LongLib::div([D[D) MISSING
com.google.gwt.lang.LongLib::eq([D[D) MISSING
com.google.gwt.lang.LongLib::fromDouble(D) RETURN_TYPE_ERROR  from double[] to java.lang.Object
com.google.gwt.lang.LongLib::fromInt(I) RETURN_TYPE_ERROR  from double[] to java.lang.Object
com.google.gwt.lang.LongLib::gt([D[D) MISSING
com.google.gwt.lang.LongLib::gte([D[D) MISSING
com.google.gwt.lang.LongLib::lt([D[D) MISSING
com.google.gwt.lang.LongLib::lte([D[D) MISSING
com.google.gwt.lang.LongLib::mod([D[D) MISSING
com.google.gwt.lang.LongLib::mul([D[D) MISSING
com.google.gwt.lang.LongLib::neg([D) MISSING
com.google.gwt.lang.LongLib::neq([D[D) MISSING
com.google.gwt.lang.LongLib::not([D) MISSING
com.google.gwt.lang.LongLib::or([D[D) MISSING
com.google.gwt.lang.LongLib::shl([DI) MISSING
com.google.gwt.lang.LongLib::shr([DI) MISSING
com.google.gwt.lang.LongLib::shru([DI) MISSING
com.google.gwt.lang.LongLib::sub([D[D) MISSING
com.google.gwt.lang.LongLib::toDouble([D) MISSING
com.google.gwt.lang.LongLib::toInt([D) MISSING
com.google.gwt.lang.LongLib::toString([D) MISSING
com.google.gwt.lang.LongLib::typeChange(J) MISSING
com.google.gwt.lang.LongLib::xor([D[D) MISSING

# Array.length is now intrinsic to the compiler
com.google.gwt.lang.Array::length MISSING

# Array initialization modified to include castableTypeMap arg
com.google.gwt.lang.Array::initDim(Ljava/lang/Class;IIII) MISSING
com.google.gwt.lang.Array::initDims([Ljava/lang/Class;[I[I[III) MISSING
com.google.gwt.lang.Array::initValues(Ljava/lang/Class;IILcom/google/gwt/lang/Array;) MISSING

# Add DateTimeFormatInfo, PredefinedFormat overrides
com.google.gwt.i18n.client.DateTimeFormat::DateTimeFormat(Ljava/lang/String;Lcom/google/gwt/i18n/client/constants/DateTimeConstants;) OVERLOADED_METHOD_CALL
com.google.gwt.i18n.client.DateTimeFormat::getFormat(Ljava/lang/String;) OVERLOADED_METHOD_CALL

# All protected methods that were overridden by generated classes; user shouldn't be subclassing.
com.google.gwt.i18n.client.CurrencyList::dataMap MISSING
com.google.gwt.i18n.client.CurrencyList::ensureCurrencyMap() MISSING
com.google.gwt.i18n.client.CurrencyList::ensureNamesMap() MISSING
com.google.gwt.i18n.client.CurrencyList::getEntry(Ljava/lang/String;) MISSING
com.google.gwt.i18n.client.CurrencyList::getNamesEntry(Ljava/lang/String;) MISSING
com.google.gwt.i18n.client.CurrencyList::isDeprecated(Lcom/google/gwt/i18n/client/CurrencyData;) MISSING
com.google.gwt.i18n.client.CurrencyList::loadCurrencyMap() MISSING
com.google.gwt.i18n.client.CurrencyList::loadNamesMap() MISSING
com.google.gwt.i18n.client.CurrencyList::namesMap MISSING
com.google.gwt.i18n.client.CurrencyList::overrideCurrencyMap(Lcom/google/gwt/core/client/JavaScriptObject;) MISSING
com.google.gwt.i18n.client.CurrencyList::overrideNamesMap(Lcom/google/gwt/core/client/JavaScriptObject;) MISSING

# Introduction of RpcStatsContext, which is now passed instead of the integer ids.
com.google.gwt.rpc.client.impl.RpcCallbackAdapter::RpcCallbackAdapter(Lcom/google/gwt/user/client/rpc/SerializationStreamFactory;Ljava/lang/String;ILcom/google/gwt/user/client/rpc/AsyncCallback;) MISSING
com.google.gwt.rpc.client.impl.RpcServiceProxy::doInvoke(Lcom/google/gwt/user/client/rpc/impl/RequestCallbackAdapter$ResponseReader;Ljava/lang/String;ILjava/lang/String;Lcom/google/gwt/user/client/rpc/AsyncCallback;) MISSING
com.google.gwt.rpc.client.impl.RpcServiceProxy::doPrepareRequestBuilder(Lcom/google/gwt/user/client/rpc/impl/RequestCallbackAdapter$ResponseReader;Ljava/lang/String;ILjava/lang/String;Lcom/google/gwt/user/client/rpc/AsyncCallback;) MISSING
com.google.gwt.rpc.client.impl.RpcServiceProxy::doCreateRequestCallback(Lcom/google/gwt/user/client/rpc/impl/RequestCallbackAdapter$ResponseReader;Ljava/lang/String;ILcom/google/gwt/user/client/rpc/AsyncCallback;) MISSING

