#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/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/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/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\

##############################################
#excluded packages
excludedPackages 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.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
