Split AnalysisServerWrapper into Dart and Flutter (#591)

diff --git a/benchmark/bench.dart b/benchmark/bench.dart
index 77692e8..f7ed1c1 100644
--- a/benchmark/bench.dart
+++ b/benchmark/bench.dart
@@ -33,15 +33,14 @@
   });
 
   final benchmarks = <Benchmark>[
-    AnalyzerBenchmark('hello', sampleCode, flutterWebManager),
-    AnalyzerBenchmark('hellohtml', sampleCodeWeb, flutterWebManager),
-    AnalyzerBenchmark('sunflower', _sunflower, flutterWebManager),
-    AnalyzerBenchmark('spinning_square', _spinningSquare, flutterWebManager),
-    AnalysisServerBenchmark('hello', sampleCode, flutterWebManager),
-    AnalysisServerBenchmark('hellohtml', sampleCodeWeb, flutterWebManager),
-    AnalysisServerBenchmark('sunflower', _sunflower, flutterWebManager),
-    AnalysisServerBenchmark(
-        'spinning_square', _spinningSquare, flutterWebManager),
+    AnalyzerBenchmark('hello', sampleCode),
+    AnalyzerBenchmark('hellohtml', sampleCodeWeb),
+    AnalyzerBenchmark('sunflower', _sunflower),
+    AnalyzerBenchmark('spinning_square', _spinningSquare),
+    AnalysisServerBenchmark('hello', sampleCode),
+    AnalysisServerBenchmark('hellohtml', sampleCodeWeb),
+    AnalysisServerBenchmark('sunflower', _sunflower),
+    AnalysisServerBenchmark('spinning_square', _spinningSquare),
     Dart2jsBenchmark('hello', sampleCode, compiler),
     Dart2jsBenchmark('hellohtml', sampleCodeWeb, compiler),
     Dart2jsBenchmark('sunflower', _sunflower, compiler),
@@ -61,9 +60,10 @@
   AnalysisServerWrapper analysisServer;
 
   AnalyzerBenchmark(
-      String name, this.source, FlutterWebManager flutterWebManager)
-      : super('analyzer.$name') {
-    analysisServer = AnalysisServerWrapper(sdkPath, flutterWebManager);
+    String name,
+    this.source,
+  ) : super('analyzer.$name') {
+    analysisServer = DartAnalysisServerWrapper();
   }
 
   @override
@@ -110,9 +110,8 @@
   final String source;
   final AnalysisServerWrapper analysisServer;
 
-  AnalysisServerBenchmark(
-      String name, this.source, FlutterWebManager flutterWebManager)
-      : analysisServer = AnalysisServerWrapper(sdkPath, flutterWebManager),
+  AnalysisServerBenchmark(String name, this.source)
+      : analysisServer = DartAnalysisServerWrapper(),
         super('completion.$name');
 
   @override
diff --git a/lib/services_cloud_run.dart b/lib/services_cloud_run.dart
index 9ec1e37..6e6b034 100644
--- a/lib/services_cloud_run.dart
+++ b/lib/services_cloud_run.dart
@@ -13,7 +13,6 @@
 import 'package:shelf/shelf.dart';
 import 'package:shelf/shelf_io.dart' as shelf;
 
-import 'src/common.dart';
 import 'src/common_server_api.dart';
 import 'src/common_server_impl.dart';
 import 'src/flutter_web.dart';
@@ -41,7 +40,6 @@
   }
 
   final redisServerUri = result['redis-url'] as String;
-  final sdk = sdkPath;
 
   Logger.root.level = Level.FINER;
   Logger.root.onRecord.listen((LogRecord record) {
@@ -56,19 +54,18 @@
 
   _logger.info('''Initializing dart-services:
     port: $port
-    sdkPath: $sdkPath
+    sdkPath: ${SdkManager.sdk.sdkPath}
     redisServerUri: $redisServerUri
     Cloud Run Environment variables:
     $cloudRunEnvVars''');
 
-  final server = await EndpointsServer.serve(sdk, port, redisServerUri);
+  final server = await EndpointsServer.serve(port, redisServerUri);
   _logger.info('Listening on port ${server.port}');
 }
 
 class EndpointsServer {
-  static Future<EndpointsServer> serve(
-      String sdkPath, int port, String redisServerUri) {
-    final endpointsServer = EndpointsServer._(sdkPath, port, redisServerUri);
+  static Future<EndpointsServer> serve(int port, String redisServerUri) {
+    final endpointsServer = EndpointsServer._(port, redisServerUri);
 
     return shelf
         .serve(endpointsServer.handler, InternetAddress.anyIPv4, port)
@@ -88,11 +85,8 @@
   CommonServerApi commonServerApi;
   FlutterWebManager flutterWebManager;
 
-  EndpointsServer._(String sdkPath, this.port, this.redisServerUri) {
-    flutterWebManager = FlutterWebManager(SdkManager.flutterSdk);
+  EndpointsServer._(this.port, this.redisServerUri) {
     final commonServerImpl = CommonServerImpl(
-      sdkPath,
-      flutterWebManager,
       _ServerContainer(),
       redisServerUri == null
           ? InMemoryCache()
diff --git a/lib/services_dev.dart b/lib/services_dev.dart
index 1706490..2b48a3c 100644
--- a/lib/services_dev.dart
+++ b/lib/services_dev.dart
@@ -13,11 +13,9 @@
 import 'package:shelf/shelf.dart';
 import 'package:shelf/shelf_io.dart' as shelf;
 
-import 'src/common.dart';
 import 'src/common_server_api.dart';
 import 'src/common_server_impl.dart';
 import 'src/flutter_web.dart';
-import 'src/sdk_manager.dart';
 import 'src/server_cache.dart';
 import 'src/shelf_cors.dart' as shelf_cors;
 
@@ -36,22 +34,20 @@
     exit(1);
   }
 
-  final sdk = sdkPath;
-
   Logger.root.level = Level.FINER;
   Logger.root.onRecord.listen((LogRecord record) {
     print(record);
     if (record.stackTrace != null) print(record.stackTrace);
   });
 
-  EndpointsServer.serve(sdk, port).then((EndpointsServer server) {
+  EndpointsServer.serve(port).then((EndpointsServer server) {
     _logger.info('Listening on port ${server.port}');
   });
 }
 
 class EndpointsServer {
-  static Future<EndpointsServer> serve(String sdkPath, int port) {
-    final endpointsServer = EndpointsServer._(sdkPath, port);
+  static Future<EndpointsServer> serve(int port) {
+    final endpointsServer = EndpointsServer._(port);
 
     return shelf
         .serve(endpointsServer.handler, InternetAddress.anyIPv4, port)
@@ -70,11 +66,8 @@
   CommonServerApi commonServerApi;
   FlutterWebManager flutterWebManager;
 
-  EndpointsServer._(String sdkPath, this.port) {
-    flutterWebManager = FlutterWebManager(SdkManager.flutterSdk);
+  EndpointsServer._(this.port) {
     final commonServerImpl = CommonServerImpl(
-      sdkPath,
-      flutterWebManager,
       _ServerContainer(),
       _Cache(),
     );
diff --git a/lib/services_gae.dart b/lib/services_gae.dart
index 1a003b6..5dfd8b6 100644
--- a/lib/services_gae.dart
+++ b/lib/services_gae.dart
@@ -12,10 +12,8 @@
 import 'package:logging/logging.dart';
 import 'package:shelf/shelf_io.dart' as shelf_io;
 
-import 'src/common.dart';
 import 'src/common_server_api.dart';
 import 'src/common_server_impl.dart';
-import 'src/flutter_web.dart';
 import 'src/sdk_manager.dart';
 import 'src/server_cache.dart';
 
@@ -33,9 +31,7 @@
   var gaePort = 8080;
   if (args.isNotEmpty) gaePort = int.parse(args[0]);
 
-  final sdk = sdkPath;
-
-  if (sdk == null) {
+  if (SdkManager.sdk.sdkPath == null) {
     throw 'No Dart SDK is available; set the DART_SDK env var.';
   }
 
@@ -51,34 +47,30 @@
   });
   log.info('''Initializing dart-services:
     port: $gaePort
-    sdkPath: $sdkPath
+    sdkPath: ${SdkManager.sdk?.sdkPath}
     REDIS_SERVER_URI: ${io.Platform.environment['REDIS_SERVER_URI']}
     GAE_VERSION: ${io.Platform.environment['GAE_VERSION']}
   ''');
 
-  final server = GaeServer(sdk, io.Platform.environment['REDIS_SERVER_URI']);
+  final server = GaeServer(io.Platform.environment['REDIS_SERVER_URI']);
   server.start(gaePort);
 }
 
 class GaeServer {
-  final String sdkPath;
   final String redisServerUri;
 
   bool discoveryEnabled;
   CommonServerImpl commonServerImpl;
   CommonServerApi commonServerApi;
 
-  GaeServer(this.sdkPath, this.redisServerUri) {
+  GaeServer(this.redisServerUri) {
     hierarchicalLoggingEnabled = true;
     recordStackTraceAtLevel = Level.SEVERE;
 
     _logger.level = Level.ALL;
 
     discoveryEnabled = false;
-    final flutterWebManager = FlutterWebManager(SdkManager.flutterSdk);
     commonServerImpl = CommonServerImpl(
-      sdkPath,
-      flutterWebManager,
       GaeServerContainer(),
       redisServerUri == null
           ? InMemoryCache()
diff --git a/lib/src/analysis_server.dart b/lib/src/analysis_server.dart
index 7e03974..d719e36 100644
--- a/lib/src/analysis_server.dart
+++ b/lib/src/analysis_server.dart
@@ -18,6 +18,7 @@
 import 'protos/dart_services.pb.dart' as proto;
 import 'pub.dart';
 import 'scheduler.dart';
+import 'sdk_manager.dart';
 
 final Logger _logger = Logger('analysis_server');
 
@@ -32,25 +33,48 @@
 // Use very long timeouts to ensure that the server has enough time to restart.
 const Duration _ANALYSIS_SERVER_TIMEOUT = Duration(seconds: 35);
 
-class AnalysisServerWrapper {
-  final String sdkPath;
+class FlutterAnalysisServerWrapper extends AnalysisServerWrapper {
   final FlutterWebManager flutterWebManager;
 
+  FlutterAnalysisServerWrapper(this.flutterWebManager)
+      : super(SdkManager.flutterSdk.sdkPath);
+
+  @override
+  String get _sourceDirPath => flutterWebManager.projectDirectory.path;
+}
+
+class DartAnalysisServerWrapper extends AnalysisServerWrapper {
+  Directory _tempProject;
+  DartAnalysisServerWrapper() : super(SdkManager.sdk.sdkPath);
+
+  @override
+  Future<AnalysisServer> init() async {
+    _tempProject = await Directory.systemTemp.createTemp('DartAnalysisWrapper');
+    return super.init();
+  }
+
+  @override
+  String get _sourceDirPath => _tempProject.path;
+
+  @override
+  Future shutdown() =>
+      _tempProject.delete(recursive: true).then((value) => super.shutdown());
+}
+
+abstract class AnalysisServerWrapper {
+  final String sdkPath;
+  final TaskScheduler serverScheduler = TaskScheduler();
+
   Future<AnalysisServer> _init;
-  String mainPath;
-  TaskScheduler serverScheduler;
 
   /// Instance to handle communication with the server.
   AnalysisServer analysisServer;
 
-  AnalysisServerWrapper(this.sdkPath, this.flutterWebManager) {
-    _logger.info('AnalysisServerWrapper ctor');
-    mainPath = _getPathFromName(kMainDart);
+  AnalysisServerWrapper(this.sdkPath);
 
-    serverScheduler = TaskScheduler();
-  }
+  String get mainPath => _getPathFromName(kMainDart);
 
-  String get _sourceDirPath => flutterWebManager.projectDirectory.path;
+  String get _sourceDirPath;
 
   Future<AnalysisServer> init() {
     if (_init == null) {
@@ -243,8 +267,7 @@
   Future<proto.AnalysisResults> analyze(String source) {
     var sources = <String, String>{kMainDart: source};
 
-    _logger
-        .fine('analyzeMulti: Scheduler queue: ${serverScheduler.queueCount}');
+    _logger.fine('analyze: Scheduler queue: ${serverScheduler.queueCount}');
 
     return serverScheduler
         .schedule(ClosureTask<proto.AnalysisResults>(() async {
diff --git a/lib/src/common.dart b/lib/src/common.dart
index 5aa8bfb..27e0be8 100644
--- a/lib/src/common.dart
+++ b/lib/src/common.dart
@@ -6,8 +6,6 @@
 
 import 'dart:io';
 
-import 'sdk_manager.dart';
-
 const kMainDart = 'main.dart';
 const kBootstrapDart = 'bootstrap.dart';
 
@@ -166,5 +164,3 @@
   }
   return str;
 }
-
-String get sdkPath => SdkManager.sdk.sdkPath;
diff --git a/lib/src/common_server_impl.dart b/lib/src/common_server_impl.dart
index 787440a..f9351fb 100644
--- a/lib/src/common_server_impl.dart
+++ b/lib/src/common_server_impl.dart
@@ -36,17 +36,16 @@
 }
 
 class CommonServerImpl {
-  final String sdkPath;
-  final FlutterWebManager flutterWebManager;
   final ServerContainer container;
   final ServerCache cache;
 
+  FlutterWebManager flutterWebManager;
   Compiler compiler;
-  AnalysisServerWrapper analysisServer;
+  AnalysisServerWrapper dartAnalysisServer;
   AnalysisServerWrapper flutterAnalysisServer;
 
   bool get analysisServersRunning =>
-      analysisServer.analysisServer != null &&
+      dartAnalysisServer.analysisServer != null &&
       flutterAnalysisServer.analysisServer != null;
 
   // If non-null, this value indicates that the server is starting/restarting
@@ -62,8 +61,6 @@
       DateTime.now().difference(_restartingSince).inMinutes < 30);
 
   CommonServerImpl(
-    this.sdkPath,
-    this.flutterWebManager,
     this.container,
     this.cache,
   ) {
@@ -73,21 +70,21 @@
 
   Future<void> init() async {
     log.info('Beginning CommonServer init().');
-    analysisServer = AnalysisServerWrapper(sdkPath, flutterWebManager);
-    flutterAnalysisServer = AnalysisServerWrapper(
-        flutterWebManager.flutterSdk.sdkPath, flutterWebManager);
+    flutterWebManager = FlutterWebManager(SdkManager.flutterSdk);
+    dartAnalysisServer = DartAnalysisServerWrapper();
+    flutterAnalysisServer = FlutterAnalysisServerWrapper(flutterWebManager);
 
     compiler =
         Compiler(SdkManager.sdk, SdkManager.flutterSdk, flutterWebManager);
 
-    await analysisServer.init();
+    await dartAnalysisServer.init();
     log.info('Dart analysis server initialized.');
 
     await flutterAnalysisServer.init();
     log.info('Flutter analysis server initialized.');
 
-    unawaited(analysisServer.onExit.then((int code) {
-      log.severe('analysisServer exited, code: $code');
+    unawaited(dartAnalysisServer.onExit.then((int code) {
+      log.severe('dartAnalysisServer exited, code: $code');
       if (code != 0) {
         exit(code);
       }
@@ -104,7 +101,7 @@
 
     await flutterWebManager.warmup();
     await compiler.warmup();
-    await analysisServer.warmup();
+    await dartAnalysisServer.warmup();
     await flutterAnalysisServer.warmup();
   }
 
@@ -121,9 +118,10 @@
     _restartingSince = DateTime.now();
 
     return Future.wait(<Future<dynamic>>[
-      analysisServer.shutdown(),
+      dartAnalysisServer.shutdown(),
       flutterAnalysisServer.shutdown(),
       compiler.dispose(),
+      flutterWebManager.dispose(),
       Future<dynamic>.sync(cache.shutdown)
     ]).timeout(const Duration(minutes: 1));
   }
@@ -459,7 +457,7 @@
     final imports = getAllImportsFor(source);
     return flutterWebManager.usesFlutterWeb(imports)
         ? flutterAnalysisServer
-        : analysisServer;
+        : dartAnalysisServer;
   }
 }
 
diff --git a/lib/src/flutter_web.dart b/lib/src/flutter_web.dart
index 5a6c6bb..1330f82 100644
--- a/lib/src/flutter_web.dart
+++ b/lib/src/flutter_web.dart
@@ -24,9 +24,7 @@
     _init();
   }
 
-  void dispose() {
-    _projectDirectory.deleteSync(recursive: true);
-  }
+  Future<void> dispose() => _projectDirectory.delete(recursive: true);
 
   Directory get projectDirectory => _projectDirectory;
 
diff --git a/pubspec.lock b/pubspec.lock
index 484128c..ced6f73 100644
--- a/pubspec.lock
+++ b/pubspec.lock
@@ -357,7 +357,7 @@
       name: meta
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "1.2.2"
+    version: "1.2.3"
   mime:
     dependency: transitive
     description:
diff --git a/test/analysis_server_test.dart b/test/analysis_server_test.dart
index ac72d57..00560df 100644
--- a/test/analysis_server_test.dart
+++ b/test/analysis_server_test.dart
@@ -62,12 +62,10 @@
 
 void defineTests() {
   AnalysisServerWrapper analysisServer;
-  FlutterWebManager flutterWebManager;
 
   group('Platform SDK analysis_server', () {
     setUp(() async {
-      flutterWebManager = FlutterWebManager(SdkManager.flutterSdk);
-      analysisServer = AnalysisServerWrapper(sdkPath, flutterWebManager);
+      analysisServer = DartAnalysisServerWrapper();
       await analysisServer.init();
     });
 
@@ -191,10 +189,11 @@
   });
 
   group('Flutter cached SDK analysis_server', () {
+    FlutterWebManager flutterWebManager;
+
     setUp(() async {
       flutterWebManager = FlutterWebManager(SdkManager.flutterSdk);
-      analysisServer = AnalysisServerWrapper(
-          SdkManager.flutterSdk.sdkPath, flutterWebManager);
+      analysisServer = FlutterAnalysisServerWrapper(flutterWebManager);
       await analysisServer.init();
     });
 
diff --git a/test/common_server_api_protobuf_test.dart b/test/common_server_api_protobuf_test.dart
index c4aa222..a9aae8f 100644
--- a/test/common_server_api_protobuf_test.dart
+++ b/test/common_server_api_protobuf_test.dart
@@ -10,8 +10,6 @@
 import 'package:dart_services/src/common.dart';
 import 'package:dart_services/src/common_server_impl.dart';
 import 'package:dart_services/src/common_server_api.dart';
-import 'package:dart_services/src/flutter_web.dart';
-import 'package:dart_services/src/sdk_manager.dart';
 import 'package:dart_services/src/server_cache.dart';
 import 'package:dart_services/src/protos/dart_services.pb.dart' as proto;
 import 'package:logging/logging.dart';
@@ -58,7 +56,6 @@
 void defineTests() {
   CommonServerApi commonServerApi;
   CommonServerImpl commonServerImpl;
-  FlutterWebManager flutterWebManager;
 
   MockContainer container;
   MockCache cache;
@@ -93,9 +90,7 @@
     setUpAll(() async {
       container = MockContainer();
       cache = MockCache();
-      flutterWebManager = FlutterWebManager(SdkManager.flutterSdk);
-      commonServerImpl =
-          CommonServerImpl(sdkPath, flutterWebManager, container, cache);
+      commonServerImpl = CommonServerImpl(container, cache);
       commonServerApi = CommonServerApi(commonServerImpl);
       await commonServerImpl.init();
 
diff --git a/test/common_server_api_test.dart b/test/common_server_api_test.dart
index 08e9839..bd4d1b0 100644
--- a/test/common_server_api_test.dart
+++ b/test/common_server_api_test.dart
@@ -10,8 +10,6 @@
 import 'package:dart_services/src/common.dart';
 import 'package:dart_services/src/common_server_impl.dart';
 import 'package:dart_services/src/common_server_api.dart';
-import 'package:dart_services/src/flutter_web.dart';
-import 'package:dart_services/src/sdk_manager.dart';
 import 'package:dart_services/src/server_cache.dart';
 import 'package:logging/logging.dart';
 import 'package:mock_request/mock_request.dart';
@@ -58,7 +56,6 @@
 void defineTests() {
   CommonServerApi commonServerApi;
   CommonServerImpl commonServerImpl;
-  FlutterWebManager flutterWebManager;
 
   MockContainer container;
   MockCache cache;
@@ -93,9 +90,7 @@
     setUpAll(() async {
       container = MockContainer();
       cache = MockCache();
-      flutterWebManager = FlutterWebManager(SdkManager.flutterSdk);
-      commonServerImpl =
-          CommonServerImpl(sdkPath, flutterWebManager, container, cache);
+      commonServerImpl = CommonServerImpl(container, cache);
       commonServerApi = CommonServerApi(commonServerImpl);
       await commonServerImpl.init();
 
diff --git a/test/flutter_analysis_server_test.dart b/test/flutter_analysis_server_test.dart
index 64d86a5..6e551c7 100644
--- a/test/flutter_analysis_server_test.dart
+++ b/test/flutter_analysis_server_test.dart
@@ -211,8 +211,7 @@
       await SdkManager.flutterSdk.init();
       flutterWebManager = FlutterWebManager(SdkManager.flutterSdk);
       await flutterWebManager.warmup();
-      analysisServer = AnalysisServerWrapper(
-          SdkManager.flutterSdk.sdkPath, flutterWebManager);
+      analysisServer = FlutterAnalysisServerWrapper(flutterWebManager);
       await analysisServer.init();
       await analysisServer.warmup();
     });
@@ -247,8 +246,7 @@
           Compiler(SdkManager.sdk, SdkManager.flutterSdk, flutterWebManager);
       await compiler.warmup();
 
-      analysisServer = AnalysisServerWrapper(
-          SdkManager.flutterSdk.sdkPath, flutterWebManager);
+      analysisServer = FlutterAnalysisServerWrapper(flutterWebManager);
       await analysisServer.init();
       await analysisServer.warmup();
     });
@@ -280,13 +278,11 @@
       flutterWebManager = FlutterWebManager(SdkManager.flutterSdk);
       await flutterWebManager.warmup();
 
-      flutterAnalysisServer = AnalysisServerWrapper(
-          SdkManager.flutterSdk.sdkPath, flutterWebManager);
+      flutterAnalysisServer = FlutterAnalysisServerWrapper(flutterWebManager);
       await flutterAnalysisServer.init();
       await flutterAnalysisServer.warmup();
 
-      dartAnalysisServer =
-          AnalysisServerWrapper(SdkManager.sdk.sdkPath, flutterWebManager);
+      dartAnalysisServer = DartAnalysisServerWrapper();
       await dartAnalysisServer.init();
       await dartAnalysisServer.warmup();
     });
@@ -310,7 +306,6 @@
 
   group('CommonServerImpl flutter analyze', () {
     CommonServerImpl commonServerImpl;
-    FlutterWebManager flutterWebManager;
 
     _MockContainer container;
     _MockCache cache;
@@ -319,24 +314,21 @@
       await SdkManager.flutterSdk.init();
       container = _MockContainer();
       cache = _MockCache();
-      flutterWebManager = FlutterWebManager(SdkManager.flutterSdk);
-      commonServerImpl =
-          CommonServerImpl(sdkPath, flutterWebManager, container, cache);
+      commonServerImpl = CommonServerImpl(container, cache);
       await commonServerImpl.init();
     });
 
     tearDown(() async {
       await commonServerImpl.shutdown();
-      await flutterWebManager.dispose();
     });
 
-    test('analyze counter app', () async {
+    test('counter app', () async {
       final results =
           await commonServerImpl.analyze(SourceRequest()..source = counter);
       expect(results.issues, isEmpty);
     });
 
-    test('analyze Draggable Physics sample', () async {
+    test('Draggable Physics sample', () async {
       final results = await commonServerImpl
           .analyze(SourceRequest()..source = draggableAndPhysics);
       expect(results.issues, isEmpty);
diff --git a/tool/fuzz_driver.dart b/tool/fuzz_driver.dart
index 8a14f2a..6059e17 100644
--- a/tool/fuzz_driver.dart
+++ b/tool/fuzz_driver.dart
@@ -64,7 +64,6 @@
   if (args.length >= 4) iterations = int.parse(args[3]);
   if (args.length >= 5) commandToRun = args[4];
   if (args.length >= 6) dumpServerComms = args[5].toLowerCase() == 'true';
-  final sdk = sdkPath;
 
   // Load the list of files.
   var fileEntities = <io.FileSystemEntity>[];
@@ -81,10 +80,10 @@
   final sw = Stopwatch()..start();
 
   print('About to setuptools');
-  print(sdk);
+  print(SdkManager.sdk.sdkPath);
 
   // Warm up the services.
-  await setupTools(sdk);
+  await setupTools(SdkManager.sdk.sdkPath);
 
   print('Setup tools done');
 
@@ -106,7 +105,7 @@
       print('FAILED: ${fse.path}');
 
       // Try and re-cycle the services for the next test after the crash
-      await setupTools(sdk);
+      await setupTools(SdkManager.sdk.sdkPath);
     }
   }
 
@@ -127,12 +126,10 @@
 
   container = MockContainer();
   cache = MockCache();
-  commonServerImpl =
-      CommonServerImpl(sdkPath, flutterWebManager, container, cache);
+  commonServerImpl = CommonServerImpl(container, cache);
   await commonServerImpl.init();
 
-  analysisServer =
-      analysis_server.AnalysisServerWrapper(sdkPath, flutterWebManager);
+  analysisServer = analysis_server.DartAnalysisServerWrapper();
   await analysisServer.init();
 
   print('Warming up analysis server');