#existing API

# dirRoot_old is missing because refJars are being supplied
name_old gwt25userApi
# GWT 2.5 emulation library does not compile under source level 1.7
sourceLevel_old 1.6
#sourceFiles is specified as colon-separated list of files
sourceFiles_old com/google/gwt\
:com/google/web\
:javax/validation\

#excludedFiles is specified as colon-separated ant patterns
# The entries for javax and org exclude the validation stuff.
# Bug: http://code.google.com/p/google-web-toolkit/issues/detail?id=5566
excludedFiles_old com/google/gwt/benchmarks/BenchmarkReport.java\
:com/google/gwt/benchmarks/BenchmarkShell.java\
:com/google/gwt/benchmarks/client/Benchmark.java\
:com/google/gwt/typedarrays/super/com/google/gwt/typedarrays/shared/TypedArraysFactory.java\
:**/linker/**\
:**/rebind/**\
:**/server/**\
:**/tools/**\
:**/vm/**\
:com/google/gwt/regexp/shared/**\
:com/google/gwt/core/client/impl/WeakMapping.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/json/**\
:com/google/gwt/dev/resource/**\
:com/google/gwt/dev/shell/**\
:com/google/gwt/dev/ui/**\
:com/google/gwt/dev/util/**\
:com/google/gwt/i18n/**/impl/cldr/**\
:com/google/gwt/junit/*.java\
:com/google/gwt/junit/client/GWTTestCase.java\
:com/google/gwt/junit/client/impl/GWTRunner.java\
:com/google/gwt/junit/remote/**\
:com/google/gwt/resources/css/**\
:com/google/gwt/resources/ext/**\
:com/google/gwt/resources/rg/**\
:com/google/gwt/rpc/client/impl/ClientWriterFactory.java\
:com/google/gwt/rpc/client/impl/EscapeUtil.java\
:com/google/gwt/rpc/client/impl/RpcCallbackAdapter.java\
:com/google/gwt/safecss/shared/SafeStylesHostedModeUtils.java\
:com/google/gwt/safehtml/shared/SafeHtmlHostedModeUtils.java\
:com/google/gwt/safehtml/shared/SafeUriHostedModeUtils.java\
:com/google/gwt/soyc/**\
:com/google/gwt/user/client/rpc/core/**\
:com/google/gwt/user/client/rpc/impl/**\
:com/google/gwt/uibinder/attributeparsers/**\
:com/google/gwt/uibinder/client/impl/**\
:com/google/gwt/uibinder/elementparsers/**\
:com/google/gwt/uibinder/testing/**\
:com/google/gwt/util/**\
:com/google/gwt/validation/**\
:com/google/web/bindery/autobean/**/impl/**\
:com/google/web/bindery/autobean/shared/ValueCodexHelper.java\
:com/google/web/bindery/requestfactory/apt/**\
:com/google/web/bindery/requestfactory/gwt/client/impl/**\
:com/google/web/bindery/requestfactory/server/impl/**\
:com/google/web/bindery/requestfactory/shared/impl/**\
:com/google/web/bindery/requestfactory/vm/**\
:javax/**\
:org/**\

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

dirRoot_new ./
name_new gwt26userApi
#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 entries for javax and org 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\
:user/super/com/google/gwt/typedarrays/super/com/google/gwt/typedarrays/shared/TypedArraysFactory.java\
:**/linker/**\
:**/rebind/**\
:**/server/**\
:**/tools/**\
:**/vm/**\
:user/src/com/google/gwt/regexp/shared/**\
:user/src/com/google/web/bindery/autobean/shared/ValueCodexHelper.java\
:user/src/com/google/web/bindery/autobean/**/impl/**\
:user/src/com/google/gwt/core/client/impl/WeakMapping.java\
:user/src/com/google/gwt/core/shared/impl/ThrowableTypeResolver.java\
:user/src/com/google/gwt/i18n/**/impl/cldr/**\
: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/client/impl/GWTTestAccessor.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/rpc/client/impl/ClientWriterFactory.java\
:user/src/com/google/gwt/rpc/client/impl/EscapeUtil.java\
:user/src/com/google/gwt/rpc/client/impl/RpcCallbackAdapter.java\
:user/src/com/google/gwt/safecss/shared/SafeStylesHostedModeUtils.java\
:user/src/com/google/gwt/safehtml/shared/SafeHtmlHostedModeUtils.java\
:user/src/com/google/gwt/safehtml/shared/SafeUriHostedModeUtils.java\
:user/src/com/google/gwt/user/client/rpc/core/**\
:user/src/com/google/gwt/user/client/rpc/impl/**\
:user/src/com/google/gwt/uibinder/attributeparsers/**\
:user/src/com/google/gwt/uibinder/client/impl/**\
:user/src/com/google/gwt/uibinder/elementparsers/**\
:user/src/com/google/gwt/uibinder/testing/**\
:user/src/com/google/gwt/util/**\
:user/src/com/google/gwt/validation/**\
:user/src/com/google/web/bindery/requestfactory/apt/**\
:user/src/com/google/web/bindery/requestfactory/gwt/client/impl/**\
:user/src/com/google/web/bindery/requestfactory/server/impl/**\
:user/src/com/google/web/bindery/requestfactory/shared/impl/**\
:user/src/com/google/web/bindery/requestfactory/vm/**\
:user/src/javax/**\
:user/src/org/**\

##############################################
#excluded packages colon separated list
excludedPackages com.google.gwt.core.client.impl\
:com.google.gwt.core.shared.impl\
:com.google.gwt.editor.client.impl\
:com.google.gwt.junit.client.impl\
:com.google.gwt.benchmarks.client.impl\
:com.google.gwt.user.client.impl\
:com.google.gwt.user.client.ui.impl\
:com.google.gwt.i18n.client.impl\
:com.google.gwt.resources.client.impl\

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

# Removed an internal method of GWTTestCase
com.google.gwt.junit.client.GWTTestCase::__getOrCreateTestResult() MISSING

# Removed deprecated 'checkpoints' functionality in GWTTestCase
com.google.gwt.junit.client.GWTTestCase::addCheckpoint(Ljava/lang/String;) MISSING
com.google.gwt.junit.client.GWTTestCase::clearCheckpoints() MISSING
com.google.gwt.junit.client.GWTTestCase::getCheckpoints() MISSING

# Removed deprecated benchmark infra
com.google.gwt.benchmarks.client MISSING
com.google.gwt.junit.client.GWTTestCase::supportsAsync() MISSING

# Split BaseListenerWrapper
com.google.gwt.user.client.BaseListenerWrapper::getSource(Lcom/google/gwt/event/shared/GwtEvent;) MISSING
com.google.gwt.user.client.BaseListenerWrapper::setSource(Lcom/google/gwt/user/client/ui/Widget;) MISSING

# Add SafeUri variants of some existing String methods that
# are used for navigation purposes.
com.google.gwt.dom.client.AnchorElement::setHref(Ljava/lang/String;) OVERLOADED_METHOD_CALL
com.google.gwt.dom.client.FormElement::setAction(Ljava/lang/String;) OVERLOADED_METHOD_CALL
com.google.gwt.dom.client.FrameElement::setLongDesc(Ljava/lang/String;) OVERLOADED_METHOD_CALL
com.google.gwt.dom.client.FrameElement::setSrc(Ljava/lang/String;) OVERLOADED_METHOD_CALL
com.google.gwt.dom.client.IFrameElement::setSrc(Ljava/lang/String;) OVERLOADED_METHOD_CALL
com.google.gwt.dom.client.ModElement::setCite(Ljava/lang/String;) OVERLOADED_METHOD_CALL
com.google.gwt.dom.client.ObjectElement::setData(Ljava/lang/String;) OVERLOADED_METHOD_CALL
com.google.gwt.dom.client.QuoteElement::setCite(Ljava/lang/String;) OVERLOADED_METHOD_CALL
com.google.gwt.user.client.ui.Anchor::setHref(Ljava/lang/String;) OVERLOADED_METHOD_CALL

# Let HtmlBuilderFactory return HtmlInputBuilders instead of just InputBuilders
com.google.gwt.dom.builder.shared.HtmlBuilderFactory::createButtonInputBuilder() OVERRIDABLE_METHOD_RETURN_TYPE_CHANGE
com.google.gwt.dom.builder.shared.HtmlBuilderFactory::createCheckboxInputBuilder() OVERRIDABLE_METHOD_RETURN_TYPE_CHANGE
com.google.gwt.dom.builder.shared.HtmlBuilderFactory::createFileInputBuilder() OVERRIDABLE_METHOD_RETURN_TYPE_CHANGE
com.google.gwt.dom.builder.shared.HtmlBuilderFactory::createHiddenInputBuilder() OVERRIDABLE_METHOD_RETURN_TYPE_CHANGE
com.google.gwt.dom.builder.shared.HtmlBuilderFactory::createImageInputBuilder() OVERRIDABLE_METHOD_RETURN_TYPE_CHANGE
com.google.gwt.dom.builder.shared.HtmlBuilderFactory::createPasswordInputBuilder() OVERRIDABLE_METHOD_RETURN_TYPE_CHANGE
com.google.gwt.dom.builder.shared.HtmlBuilderFactory::createRadioInputBuilder(Ljava/lang/String;) OVERRIDABLE_METHOD_RETURN_TYPE_CHANGE
com.google.gwt.dom.builder.shared.HtmlBuilderFactory::createResetInputBuilder() OVERRIDABLE_METHOD_RETURN_TYPE_CHANGE
com.google.gwt.dom.builder.shared.HtmlBuilderFactory::createSubmitInputBuilder() OVERRIDABLE_METHOD_RETURN_TYPE_CHANGE
com.google.gwt.dom.builder.shared.HtmlBuilderFactory::createTextInputBuilder() OVERRIDABLE_METHOD_RETURN_TYPE_CHANGE

# Fix API compatibility for StringBuilder
java.lang.StringBuilder::append(Ljava/lang/StringBuilder;) OVERRIDABLE_METHOD_ARGUMENT_TYPE_CHANGE

# Removed long deprecated unsecure Tree/TreeItem methods
com.google.gwt.user.client.ui.Tree::addItem(Ljava/lang/String;) MISSING
com.google.gwt.user.client.ui.Tree::insertItem(ILjava/lang/String;) MISSING
com.google.gwt.user.client.ui.TreeItem::TreeItem(Ljava/lang/String;) MISSING
com.google.gwt.user.client.ui.TreeItem::addItem(Ljava/lang/String;) MISSING
com.google.gwt.user.client.ui.TreeItem::insertItem(ILjava/lang/String;) MISSING

# Remove old deprecated user.Element methods.
com.google.gwt.user.client.ui.ComplexPanel::insert(Lcom/google/gwt/user/client/ui/Widget;Lcom/google/gwt/user/client/Element;I) MISSING
com.google.gwt.user.client.ui.Panel::adopt(Lcom/google/gwt/user/client/ui/Widget;Lcom/google/gwt/user/client/Element;) MISSING
com.google.gwt.user.client.ui.Panel::disown(Lcom/google/gwt/user/client/ui/Widget;) MISSING

# Replaced EntryMethodHolder with a generator
com.google.gwt.lang.EntryMethodHolder MISSING
