#existing API

# dirRoot_old is missing because refJars are being supplied
name_old gwt24userApi
#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/safehtml/shared/SafeUriHostedModeUtils.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 gwt25userApi
#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.

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

# Removing deprecated methods in Cell Widgets.
com.google.gwt.user.cellview.client.AbstractCellTable::doSelection(Lcom/google/gwt/user/client/Event;Ljava/lang/Object;II) MISSING
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

# 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

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

# Refactor IsRenderable API
com.google.gwt.user.client.ui.Composite::performDetachedInitialization() MISSING
com.google.gwt.user.client.ui.Composite::render(Ljava/lang/String;) MISSING
com.google.gwt.user.client.ui.Composite::render(Ljava/lang/String;Lcom/google/gwt/safehtml/shared/SafeHtmlBuilder;) MISSING
com.google.gwt.user.client.ui.Composite::wrapElement(Lcom/google/gwt/dom/client/Element;) MISSING
com.google.gwt.user.client.ui.RenderablePanel::performDetachedInitialization() MISSING
com.google.gwt.user.client.ui.RenderablePanel::render(Ljava/lang/String;) MISSING
com.google.gwt.user.client.ui.RenderablePanel::render(Ljava/lang/String;Lcom/google/gwt/safehtml/shared/SafeHtmlBuilder;) MISSING
com.google.gwt.user.client.ui.RenderablePanel::wrapElement(Lcom/google/gwt/dom/client/Element;) MISSING

# Adding final modifier to static fields Boolean.TRUE/FALSE
java.lang.Boolean::FALSE FINAL_ADDED
java.lang.Boolean::TRUE FINAL_ADDED

# MenuItem is now using ScheduledCommand
com.google.gwt.user.client.ui.MenuBar::addItem(Lcom/google/gwt/safehtml/shared/SafeHtml;Lcom/google/gwt/user/client/Command;) OVERRIDABLE_METHOD_ARGUMENT_TYPE_CHANGE
com.google.gwt.user.client.ui.MenuBar::addItem(Ljava/lang/String;Lcom/google/gwt/user/client/Command;) OVERRIDABLE_METHOD_ARGUMENT_TYPE_CHANGE
com.google.gwt.user.client.ui.MenuBar::addItem(Ljava/lang/String;ZLcom/google/gwt/user/client/Command;) OVERRIDABLE_METHOD_ARGUMENT_TYPE_CHANGE
