Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(11)

Unified Diff: pkg/analysis_server/lib/src/server/driver.dart

Issue 2703033002: Add a diagnostic.getServerPort analysis server request. (Closed)
Patch Set: nits to the spec doc Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: pkg/analysis_server/lib/src/server/driver.dart
diff --git a/pkg/analysis_server/lib/src/server/driver.dart b/pkg/analysis_server/lib/src/server/driver.dart
index 44e7c19e3d9bb676dd2e0a18865a8cd5fecae92c..bc6baf28810f6b42d6a06db90e8fa9daa2b57678 100644
--- a/pkg/analysis_server/lib/src/server/driver.dart
+++ b/pkg/analysis_server/lib/src/server/driver.dart
@@ -11,6 +11,7 @@ import 'dart:math';
import 'package:analysis_server/src/analysis_server.dart';
import 'package:analysis_server/src/plugin/server_plugin.dart';
import 'package:analysis_server/src/provisional/completion/dart/completion_plugin.dart';
+import 'package:analysis_server/src/server/diagnostic_server.dart';
import 'package:analysis_server/src/server/http_server.dart';
import 'package:analysis_server/src/server/stdio_server.dart';
import 'package:analysis_server/src/socket_server.dart';
@@ -371,9 +372,9 @@ class Driver implements ServerStarter {
int port;
bool serve_http = false;
if (results[PORT_OPTION] != null) {
- serve_http = true;
try {
port = int.parse(results[PORT_OPTION]);
+ serve_http = true;
} on FormatException {
print('Invalid port number: ${results[PORT_OPTION]}');
print('');
@@ -444,11 +445,18 @@ class Driver implements ServerStarter {
[instrumentationServer, fileBasedServer])
: fileBasedServer;
}
- InstrumentationService service =
+ InstrumentationService instrumentationService =
new InstrumentationService(instrumentationServer);
- service.logVersion(_readUuid(service), results[CLIENT_ID],
- results[CLIENT_VERSION], AnalysisServer.VERSION, defaultSdk.sdkVersion);
- AnalysisEngine.instance.instrumentationService = service;
+ instrumentationService.logVersion(
+ _readUuid(instrumentationService),
+ results[CLIENT_ID],
+ results[CLIENT_VERSION],
+ AnalysisServer.VERSION,
+ defaultSdk.sdkVersion);
+ AnalysisEngine.instance.instrumentationService = instrumentationService;
+
+ _DiagnosticServerImpl diagnosticServer = new _DiagnosticServerImpl();
+
//
// Create the sockets and start listening for requests.
//
@@ -456,7 +464,8 @@ class Driver implements ServerStarter {
analysisServerOptions,
new DartSdkManager(defaultSdkPath, useSummaries),
defaultSdk,
- service,
+ instrumentationService,
+ diagnosticServer,
serverPlugin,
fileResolverProvider,
packageResolverProvider,
@@ -465,16 +474,17 @@ class Driver implements ServerStarter {
stdioServer = new StdioAnalysisServer(socketServer);
socketServer.userDefinedPlugins = _userDefinedPlugins;
+ diagnosticServer.httpServer = httpServer;
if (serve_http) {
- httpServer.serveHttp(port);
+ diagnosticServer.startOnPort(port);
}
- _captureExceptions(service, () {
+ _captureExceptions(instrumentationService, () {
stdioServer.serveStdio().then((_) async {
if (serve_http) {
httpServer.close();
}
- await service.shutdown();
+ await instrumentationService.shutdown();
exit(0);
});
},
@@ -651,3 +661,19 @@ class Driver implements ServerStarter {
}
}
}
+
+/**
+ * Implements the [DiagnosticServer] class by wrapping an [HttpAnalysisServer].
+ */
+class _DiagnosticServerImpl extends DiagnosticServer {
+ HttpAnalysisServer httpServer;
+
+ _DiagnosticServerImpl();
+
+ Future startOnPort(int port) {
+ return httpServer.serveHttp(port);
+ }
+
+ @override
+ Future<int> getServerPort() => httpServer.serveHttp();
+}
« no previous file with comments | « pkg/analysis_server/lib/src/server/diagnostic_server.dart ('k') | pkg/analysis_server/lib/src/server/http_server.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698