Dart 2.9 release (#576)

diff --git a/.gitpod.Dockerfile b/.gitpod.Dockerfile
index bea7ad2..b70e3ad 100644
--- a/.gitpod.Dockerfile
+++ b/.gitpod.Dockerfile
@@ -6,8 +6,8 @@
 # More information: https://www.gitpod.io/docs/config-docker/
 
 RUN sudo apt-get update && \
-    wget https://storage.googleapis.com/dart-archive/channels/stable/release/2.8.4/linux_packages/dart_2.8.4-1_amd64.deb && \
-    sudo dpkg -i dart_2.8.4-1_amd64.deb && \
+    wget https://storage.googleapis.com/dart-archive/channels/stable/release/2.9.0/linux_packages/dart_2.9.0-1_amd64.deb && \
+    sudo dpkg -i dart_2.9.0-1_amd64.deb && \
     sudo apt-get install -y protobuf-compiler redis && \
     sudo apt-get update && \
     echo "export PATH=\"\$PATH:/usr/lib/dart/bin:\$HOME/.pub-cache/bin\"" >> $HOME/.bashrc && \
diff --git a/.travis.yml b/.travis.yml
index 8cb7dba..d04d242 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -3,8 +3,9 @@
   - gem install coveralls-lcov
 dart:
   # Keep this value aligned with min SDK value in pubspec.yaml and FROM line of Dockerfile
-  - "2.8.4"
-  - beta
+  - "2.9.0"
+  # Temporarily eliding beta, because it is currently trailing stable
+  #- beta
 
 # Use Ubuntu 18.04 (Bionic Beaver) 
 # https://docs.travis-ci.com/user/reference/overview/#virtualization-environments
@@ -12,7 +13,7 @@
 os: linux
 
 branches:
-  only: [master, dart-29]
+  only: [master]
 before_script:
   - git submodule init
   - git submodule update
diff --git a/Dockerfile b/Dockerfile
index 9c77258..8fb1a82 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,5 +1,5 @@
 # Keep aligned with min SDK in pubspec.yaml and Dart test version in .travis.yml
-FROM google/dart:2.8.4
+FROM google/dart:2.9.0
 
 # The specific commit that dart-services should use. This should be kept
 # in sync with the flutter submodule in the dart-services repo.
diff --git a/cloud_run.Dockerfile b/cloud_run.Dockerfile
index a44d40d..10aa2c4 100644
--- a/cloud_run.Dockerfile
+++ b/cloud_run.Dockerfile
@@ -1,5 +1,5 @@
 # Keep aligned with min SDK in pubspec.yaml and Dart test version in .travis.yml
-FROM google/dart:2.8.4
+FROM google/dart:2.9.0
 
 # The specific commit that dart-services should use. This should be kept
 # in sync with the flutter submodule in the dart-services repo.
diff --git a/example/pubspec.lock b/example/pubspec.lock
index c20cd7d..300c382 100644
--- a/example/pubspec.lock
+++ b/example/pubspec.lock
@@ -7,14 +7,14 @@
       name: _fe_analyzer_shared
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "3.0.0"
+    version: "6.0.0"
   analyzer:
     dependency: transitive
     description:
       name: analyzer
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "0.39.8"
+    version: "0.39.15"
   archive:
     dependency: transitive
     description:
@@ -35,21 +35,21 @@
       name: async
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "2.4.1"
+    version: "2.4.2"
   bazel_worker:
     dependency: transitive
     description:
       name: bazel_worker
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "0.1.23+1"
+    version: "0.1.25"
   build:
     dependency: transitive
     description:
       name: build
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "1.2.2"
+    version: "1.3.0"
   build_config:
     dependency: transitive
     description:
@@ -70,35 +70,35 @@
       name: build_modules
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "2.9.0"
+    version: "2.10.1"
   build_resolvers:
     dependency: transitive
     description:
       name: build_resolvers
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "1.3.7"
+    version: "1.3.10"
   build_runner:
     dependency: "direct dev"
     description:
       name: build_runner
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "1.9.0"
+    version: "1.10.0"
   build_runner_core:
     dependency: transitive
     description:
       name: build_runner_core
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "5.1.0"
+    version: "5.2.0"
   build_web_compilers:
     dependency: "direct dev"
     description:
       name: build_web_compilers
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "2.10.0"
+    version: "2.11.0"
   built_collection:
     dependency: transitive
     description:
@@ -127,27 +127,34 @@
       url: "https://pub.dartlang.org"
     source: hosted
     version: "1.0.2"
+  cli_util:
+    dependency: transitive
+    description:
+      name: cli_util
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "0.1.4"
   code_builder:
     dependency: transitive
     description:
       name: code_builder
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "3.2.1"
+    version: "3.4.0"
   codemirror:
     dependency: "direct main"
     description:
       name: codemirror
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "0.5.16+5.53.0"
+    version: "0.5.19+5.56.0"
   collection:
     dependency: transitive
     description:
       name: collection
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "1.14.12"
+    version: "1.14.13"
   convert:
     dependency: transitive
     description:
@@ -161,14 +168,14 @@
       name: crypto
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "2.1.4"
+    version: "2.1.5"
   csslib:
     dependency: transitive
     description:
       name: csslib
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "0.16.1"
+    version: "0.16.2"
   dart_style:
     dependency: transitive
     description:
@@ -210,7 +217,7 @@
       name: http
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "0.12.1"
+    version: "0.12.2"
   http_multi_server:
     dependency: transitive
     description:
@@ -238,7 +245,7 @@
       name: js
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "0.6.1+1"
+    version: "0.6.2"
   json_annotation:
     dependency: transitive
     description:
@@ -259,14 +266,14 @@
       name: matcher
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "0.12.6"
+    version: "0.12.9"
   meta:
     dependency: transitive
     description:
       name: meta
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "1.1.8"
+    version: "1.2.2"
   mime:
     dependency: transitive
     description:
@@ -280,14 +287,14 @@
       name: node_interop
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "1.0.3"
+    version: "1.1.1"
   node_io:
     dependency: transitive
     description:
       name: node_io
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "1.0.1+2"
+    version: "1.1.1"
   package_config:
     dependency: transitive
     description:
@@ -308,7 +315,7 @@
       name: pedantic
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "1.9.0"
+    version: "1.9.2"
   pool:
     dependency: transitive
     description:
@@ -357,7 +364,7 @@
       name: shelf
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "0.7.5"
+    version: "0.7.7"
   shelf_web_socket:
     dependency: transitive
     description:
@@ -385,7 +392,7 @@
       name: stack_trace
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "1.9.3"
+    version: "1.9.5"
   stream_channel:
     dependency: transitive
     description:
@@ -427,7 +434,7 @@
       name: typed_data
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "1.1.6"
+    version: "1.2.0"
   watcher:
     dependency: transitive
     description:
diff --git a/pubspec.lock b/pubspec.lock
index e8f75c2..5a77ebb 100644
--- a/pubspec.lock
+++ b/pubspec.lock
@@ -28,14 +28,14 @@
       name: analyzer
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "0.39.14"
+    version: "0.39.16"
   appengine:
     dependency: "direct main"
     description:
       name: appengine
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "0.11.0"
+    version: "0.12.0"
   args:
     dependency: "direct main"
     description:
@@ -98,14 +98,14 @@
       name: build_runner
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "1.10.1"
+    version: "1.10.0"
   build_runner_core:
     dependency: transitive
     description:
       name: build_runner_core
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "6.0.1"
+    version: "5.2.0"
   built_collection:
     dependency: transitive
     description:
@@ -175,7 +175,7 @@
       name: coverage
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "0.13.11"
+    version: "0.14.0"
   crypto:
     dependency: "direct main"
     description:
@@ -616,7 +616,7 @@
       name: vm_service
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "4.1.0"
+    version: "4.2.0"
   watcher:
     dependency: transitive
     description:
@@ -646,4 +646,4 @@
     source: hosted
     version: "2.2.1"
 sdks:
-  dart: ">=2.8.4 <3.0.0"
+  dart: ">=2.9.0 <3.0.0"
diff --git a/pubspec.yaml b/pubspec.yaml
index 62a8b4c..ceb4aea 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -3,12 +3,12 @@
 
 environment:
   # Keep SDK aligned with .travis.yml and FROM line of Dockerfile
-  sdk: ^2.8.4
+  sdk: ^2.9.0
 
 dependencies:
-  analyzer: ^0.39.0
+  analyzer: ^0.39.15
   analysis_server_lib: ^0.1.4
-  appengine: ^0.11.0
+  appengine: ^0.12.0
   args: ^1.5.2
   bazel_worker: ^0.1.23
   crypto: ^2.0.0
@@ -28,7 +28,7 @@
   async: ^2.2.0
   build_runner: ^1.10.0
   codemirror: ^0.5.6
-  coverage: ^0.13.0
+  coverage: ^0.14.0
   grinder: ^0.8.0
   mock_request: ^1.0.7
   pedantic: ^1.9.0