#existing API

# dirRoot_old is missing because refJars are being supplied
name_old gwt23userApi
#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
excludedFiles_old com/google/gwt/benchmarks/BenchmarkReport.java\
:com/google/gwt/benchmarks/BenchmarkShell.java\
:com/google/gwt/benchmarks/client/Benchmark.java\
:**/linker/**\
:**/rebind/**\
:**/server/**\
:**/tools/**\
:**/vm/**\
:com/google/gwt/regexp/shared/**\
:com/google/gwt/autobean/**/impl/**\
:com/google/gwt/autobean/shared/ValueCodex.java\
:com/google/gwt/autobean/shared/ValueCodexHelper.java\
:com/google/gwt/autobean/shared/AutoBeanCodex.java\
: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/requestfactory/**\
:com/google/gwt/resources/client/impl/**\
: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/soyc/**\
:com/google/gwt/safehtml/shared/SafeHtmlHostedModeUtils.java\
:com/google/gwt/user/client/rpc/core/**\
:com/google/gwt/user/client/rpc/impl/**\
:com/google/gwt/uibinder/attributeparsers/**\
: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/shared/impl/**\

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

dirRoot_new ./
name_new gwt24userApi
#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\
: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/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/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.editor.client.impl\
:com.google.gwt.junit.client.impl\
:com.google.gwt.benchmarks.client.impl\
:com.google.gwt.user.client.ui.impl\
:com.google.gwt.i18n.client.impl\

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

# Removing a package protected field.
com.google.gwt.i18n.shared.AlternateMessageSelector::OTHER MISSING

# Package moved to com.google.web.bindery
com.google.gwt.autobean.shared MISSING

# move i18n classes to shared
com.google.gwt.i18n.client.DateTimeFormat::format(Ljava/util/Date;Lcom/google/gwt/i18n/client/TimeZone;) OVERRIDABLE_METHOD_ARGUMENT_TYPE_CHANGE
com.google.gwt.i18n.client.impl.DateRecord MISSING

# Overloading AttachDetachException::tryCommand to attach/detach a finite set of widgets.
com.google.gwt.user.client.ui.AttachDetachException::tryCommand(Ljava/lang/Iterable;Lcom/google/gwt/user/client/ui/AttachDetachException$Command;) OVERLOADED_METHOD_CALL

# Refactoring Loading Strategies
com.google.gwt.core.client.impl.CrossSiteIframeLoadingStrategy MISSING
com.google.gwt.core.client.impl.XhrLoadingStrategy.RequestData MISSING
com.google.gwt.core.client.impl.XhrLoadingStrategy::createXhr() MISSING
com.google.gwt.core.client.impl.XhrLoadingStrategy::onLoadError(Lcom/google/gwt/core/client/impl/XhrLoadingStrategy$RequestData;Ljava/lang/Throwable;Z) MISSING
com.google.gwt.core.client.impl.XhrLoadingStrategy::tryLoad(Lcom/google/gwt/core/client/impl/XhrLoadingStrategy$RequestData;) MISSING

# Overloading AbstractHasData constructor to allow a widget or element as the root.
com.google.gwt.user.cellview.client.AbstractHasData::AbstractHasData(Lcom/google/gwt/dom/client/Element;ILcom/google/gwt/view/client/ProvidesKey;) OVERLOADED_METHOD_CALL

# Bitless media events no longer these experimental API constants
com.google.gwt.user.client.Event::MEDIAEVENTS MISSING
com.google.gwt.user.client.Event::ONCANPLAYTHROUGH MISSING
com.google.gwt.user.client.Event::ONENDED MISSING
com.google.gwt.user.client.Event::ONPROGRESS MISSING

# Addition of SafeUri variants
com.google.gwt.user.client.ui.FormPanel::setAction(Ljava/lang/String;) OVERLOADED_METHOD_CALL
com.google.gwt.user.client.ui.Frame::setUrl(Ljava/lang/String;) OVERLOADED_METHOD_CALL
com.google.gwt.user.client.ui.Image::Image(Ljava/lang/String;IIII) OVERLOADED_METHOD_CALL
com.google.gwt.user.client.ui.Image::prefetch(Ljava/lang/String;) OVERLOADED_METHOD_CALL
com.google.gwt.user.client.ui.Image::setUrl(Ljava/lang/String;) OVERLOADED_METHOD_CALL
com.google.gwt.user.client.ui.Image::setUrlAndVisibleRect(Ljava/lang/String;IIII) OVERLOADED_METHOD_CALL

# Overloading CellTable#clearColumnWidth(Column) to accept the column index
com.google.gwt.user.cellview.client.CellTable::clearColumnWidth(Lcom/google/gwt/user/cellview/client/Column;) OVERLOADED_METHOD_CALL

# Removing deprecated methods in Cell Widgets.
com.google.gwt.user.cellview.client.AbstractHasData::onUpdateSelection() MISSING
com.google.gwt.user.cellview.client.CellList::doSelection(Lcom/google/gwt/user/client/Event;Ljava/lang/Object;I) MISSING
com.google.gwt.user.cellview.client.CellTable::doSelection(Lcom/google/gwt/user/client/Event;Ljava/lang/Object;II) MISSING

# Adding timezone constructor argument to DateCell
com.google.gwt.cell.client.DateCell::DateCell(Lcom/google/gwt/i18n/client/DateTimeFormat;Lcom/google/gwt/text/shared/SafeHtmlRenderer;) OVERLOADED_METHOD_CALL

# Refactoring Level implementation
com.google.gwt.logging.impl.LevelImplNull::all() MISSING
com.google.gwt.logging.impl.LevelImplNull::config() MISSING
com.google.gwt.logging.impl.LevelImplNull::fine() MISSING
com.google.gwt.logging.impl.LevelImplNull::finer() MISSING
com.google.gwt.logging.impl.LevelImplNull::finest() MISSING
com.google.gwt.logging.impl.LevelImplNull::getName() MISSING
com.google.gwt.logging.impl.LevelImplNull::info() MISSING
com.google.gwt.logging.impl.LevelImplNull::intValue() MISSING
com.google.gwt.logging.impl.LevelImplNull::off() MISSING
com.google.gwt.logging.impl.LevelImplNull::setName(Ljava/lang/String;) MISSING
com.google.gwt.logging.impl.LevelImplNull::setValue(I) MISSING
com.google.gwt.logging.impl.LevelImplNull::severe() MISSING
com.google.gwt.logging.impl.LevelImplNull::warning() MISSING
com.google.gwt.logging.impl.LevelImplRegular::all() MISSING
com.google.gwt.logging.impl.LevelImplRegular::config() MISSING
com.google.gwt.logging.impl.LevelImplRegular::fine() MISSING
com.google.gwt.logging.impl.LevelImplRegular::finer() MISSING
com.google.gwt.logging.impl.LevelImplRegular::finest() MISSING
com.google.gwt.logging.impl.LevelImplRegular::getName() MISSING
com.google.gwt.logging.impl.LevelImplRegular::info() MISSING
com.google.gwt.logging.impl.LevelImplRegular::intValue() MISSING
com.google.gwt.logging.impl.LevelImplRegular::off() MISSING
com.google.gwt.logging.impl.LevelImplRegular::setName(Ljava/lang/String;) MISSING
com.google.gwt.logging.impl.LevelImplRegular::setValue(I) MISSING
com.google.gwt.logging.impl.LevelImplRegular::severe() MISSING
com.google.gwt.logging.impl.LevelImplRegular::warning() MISSING
java.util.logging.Level::Level(Ljava/lang/String;I) MISSING

# implementation details shouldn't have been considered part of the API anyway
com.google.gwt.core.client.impl.CrossSiteIframeLoadingStrategy MISSING
com.google.gwt.core.client.impl.XhrLoadingStrategy.RequestData MISSING
com.google.gwt.core.client.impl.XhrLoadingStrategy::createXhr() MISSING
com.google.gwt.core.client.impl.XhrLoadingStrategy::onLoadError(Lcom/google/gwt/core/client/impl/XhrLoadingStrategy$RequestData;Ljava/lang/Throwable;Z) MISSING
com.google.gwt.core.client.impl.XhrLoadingStrategy::tryLoad(Lcom/google/gwt/core/client/impl/XhrLoadingStrategy$RequestData;) MISSING
com.google.gwt.i18n.client.impl.DateRecord MISSING

# moved from user package to useragent, not expected to be used directly
com.google.gwt.user.client.UserAgentAsserter MISSING
