#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/core/linker/**\
: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/user/linker/**\
:com/google/gwt/util/**\
:com/google/gwt/soyc/**\
:**/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/rpc/linker/*.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
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\
:**/rebind/**\
:**/server/**\
:**/tools/**\
:user/src/com/google/gwt/regexp/shared/**\
:user/src/com/google/gwt/autobean/shared/ValueCodexHelper.java\
: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/precompress/linker\
: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/rpc/linker\
: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/user/linker\
: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\

##############################################
#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::HTML(Ljava/lang/String;Z) 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

