Version 2.17.0-266.0.dev
Merge commit '2ebad4841ff854891916b55ba6b295b138434888' into 'dev'
diff --git a/pkg/analysis_server/lib/src/domain_server.dart b/pkg/analysis_server/lib/src/domain_server.dart
index d51b88c5..a5b7b83 100644
--- a/pkg/analysis_server/lib/src/domain_server.dart
+++ b/pkg/analysis_server/lib/src/domain_server.dart
@@ -4,8 +4,10 @@
import 'package:analysis_server/protocol/protocol.dart';
import 'package:analysis_server/protocol/protocol_constants.dart';
-import 'package:analysis_server/protocol/protocol_generated.dart';
import 'package:analysis_server/src/analysis_server.dart';
+import 'package:analysis_server/src/handler/legacy/server_cancel_request.dart';
+import 'package:analysis_server/src/handler/legacy/server_get_version.dart';
+import 'package:analysis_server/src/handler/legacy/server_set_subscriptions.dart';
import 'package:analysis_server/src/handler/legacy/server_shutdown.dart';
import 'package:analysis_server/src/utilities/progress.dart';
@@ -19,51 +21,28 @@
/// [server].
ServerDomainHandler(this.server);
- Response cancelRequest(Request request) {
- final id = ServerCancelRequestParams.fromRequest(request).id;
- server.cancelRequest(id);
-
- return ServerCancelRequestResult().toResponse(request.id);
- }
-
- /// Return the version number of the analysis server.
- Response getVersion(Request request) {
- return ServerGetVersionResult(
- server.options.reportProtocolVersion ?? PROTOCOL_VERSION,
- ).toResponse(request.id);
- }
-
@override
Response? handleRequest(
Request request, CancellationToken cancellationToken) {
try {
var requestName = request.method;
if (requestName == SERVER_REQUEST_GET_VERSION) {
- return getVersion(request);
+ ServerGetVersionHandler(server, request, cancellationToken).handle();
+ return Response.DELAYED_RESPONSE;
} else if (requestName == SERVER_REQUEST_SET_SUBSCRIPTIONS) {
- return setSubscriptions(request);
+ ServerSetSubscriptionsHandler(server, request, cancellationToken)
+ .handle();
+ return Response.DELAYED_RESPONSE;
} else if (requestName == SERVER_REQUEST_SHUTDOWN) {
ServerShutdownHandler(server, request, cancellationToken).handle();
return Response.DELAYED_RESPONSE;
} else if (requestName == SERVER_REQUEST_CANCEL_REQUEST) {
- return cancelRequest(request);
+ ServerCancelRequestHandler(server, request, cancellationToken).handle();
+ return Response.DELAYED_RESPONSE;
}
} on RequestFailure catch (exception) {
return exception.response;
}
return null;
}
-
- /// Subscribe for services.
- ///
- /// All previous subscriptions are replaced by the given set of subscriptions.
- Response setSubscriptions(Request request) {
- server.serverServices =
- ServerSetSubscriptionsParams.fromRequest(request).subscriptions.toSet();
-
- server.requestStatistics?.isNotificationSubscribed =
- server.serverServices.contains(ServerService.LOG);
-
- return ServerSetSubscriptionsResult().toResponse(request.id);
- }
}
diff --git a/pkg/analysis_server/lib/src/handler/legacy/server_cancel_request.dart b/pkg/analysis_server/lib/src/handler/legacy/server_cancel_request.dart
new file mode 100644
index 0000000..5702aba
--- /dev/null
+++ b/pkg/analysis_server/lib/src/handler/legacy/server_cancel_request.dart
@@ -0,0 +1,27 @@
+// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'dart:async';
+
+import 'package:analysis_server/protocol/protocol.dart';
+import 'package:analysis_server/protocol/protocol_generated.dart';
+import 'package:analysis_server/src/analysis_server.dart';
+import 'package:analysis_server/src/handler/legacy/legacy_handler.dart';
+import 'package:analysis_server/src/utilities/progress.dart';
+
+/// The handler for the `server.cancelRequest` request.
+class ServerCancelRequestHandler extends LegacyHandler {
+ /// Initialize a newly created handler to be able to service requests for the
+ /// [server].
+ ServerCancelRequestHandler(AnalysisServer server, Request request,
+ CancellationToken cancellationToken)
+ : super(server, request, cancellationToken);
+
+ @override
+ Future<void> handle() async {
+ final id = ServerCancelRequestParams.fromRequest(request).id;
+ server.cancelRequest(id);
+ sendResult(ServerCancelRequestResult());
+ }
+}
diff --git a/pkg/analysis_server/lib/src/handler/legacy/server_get_version.dart b/pkg/analysis_server/lib/src/handler/legacy/server_get_version.dart
new file mode 100644
index 0000000..21eb232
--- /dev/null
+++ b/pkg/analysis_server/lib/src/handler/legacy/server_get_version.dart
@@ -0,0 +1,28 @@
+// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'dart:async';
+
+import 'package:analysis_server/protocol/protocol.dart';
+import 'package:analysis_server/protocol/protocol_constants.dart';
+import 'package:analysis_server/protocol/protocol_generated.dart';
+import 'package:analysis_server/src/analysis_server.dart';
+import 'package:analysis_server/src/handler/legacy/legacy_handler.dart';
+import 'package:analysis_server/src/utilities/progress.dart';
+
+/// The handler for the `server.getVersion` request.
+class ServerGetVersionHandler extends LegacyHandler {
+ /// Initialize a newly created handler to be able to service requests for the
+ /// [server].
+ ServerGetVersionHandler(AnalysisServer server, Request request,
+ CancellationToken cancellationToken)
+ : super(server, request, cancellationToken);
+
+ @override
+ Future<void> handle() async {
+ sendResult(ServerGetVersionResult(
+ server.options.reportProtocolVersion ?? PROTOCOL_VERSION,
+ ));
+ }
+}
diff --git a/pkg/analysis_server/lib/src/handler/legacy/server_set_subscriptions.dart b/pkg/analysis_server/lib/src/handler/legacy/server_set_subscriptions.dart
new file mode 100644
index 0000000..67633bf
--- /dev/null
+++ b/pkg/analysis_server/lib/src/handler/legacy/server_set_subscriptions.dart
@@ -0,0 +1,35 @@
+// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'dart:async';
+
+import 'package:analysis_server/protocol/protocol.dart';
+import 'package:analysis_server/protocol/protocol_generated.dart';
+import 'package:analysis_server/src/analysis_server.dart';
+import 'package:analysis_server/src/handler/legacy/legacy_handler.dart';
+import 'package:analysis_server/src/utilities/progress.dart';
+
+/// The handler for the `server.setSubscriptions` request.
+class ServerSetSubscriptionsHandler extends LegacyHandler {
+ /// Initialize a newly created handler to be able to service requests for the
+ /// [server].
+ ServerSetSubscriptionsHandler(AnalysisServer server, Request request,
+ CancellationToken cancellationToken)
+ : super(server, request, cancellationToken);
+
+ @override
+ Future<void> handle() async {
+ try {
+ server.serverServices = ServerSetSubscriptionsParams.fromRequest(request)
+ .subscriptions
+ .toSet();
+ server.requestStatistics?.isNotificationSubscribed =
+ server.serverServices.contains(ServerService.LOG);
+ } on RequestFailure catch (exception) {
+ sendResponse(exception.response);
+ return;
+ }
+ sendResult(ServerSetSubscriptionsResult());
+ }
+}
diff --git a/pkg/analysis_server/test/domain_server_test.dart b/pkg/analysis_server/test/domain_server_test.dart
index b7bfaa8..9c26bd7 100644
--- a/pkg/analysis_server/test/domain_server_test.dart
+++ b/pkg/analysis_server/test/domain_server_test.dart
@@ -5,74 +5,52 @@
import 'package:analysis_server/protocol/protocol.dart';
import 'package:analysis_server/protocol/protocol_constants.dart';
import 'package:analysis_server/protocol/protocol_generated.dart';
-import 'package:analysis_server/src/analysis_server.dart';
-import 'package:analysis_server/src/domain_server.dart';
-import 'package:analysis_server/src/server/crash_reporting_attachments.dart';
-import 'package:analysis_server/src/utilities/mocks.dart';
-import 'package:analysis_server/src/utilities/progress.dart';
-import 'package:analyzer/file_system/memory_file_system.dart';
-import 'package:analyzer/instrumentation/instrumentation.dart';
-import 'package:analyzer/src/generated/sdk.dart';
import 'package:test/test.dart';
+import 'package:test_reflective_loader/test_reflective_loader.dart';
+import 'analysis_server_base.dart';
import 'constants.dart';
import 'mocks.dart';
void main() {
- late AnalysisServer server;
- late ServerDomainHandler handler;
- late MockServerChannel serverChannel;
-
- setUp(() {
- serverChannel = MockServerChannel();
- var resourceProvider = MemoryResourceProvider();
- server = AnalysisServer(
- serverChannel,
- resourceProvider,
- AnalysisServerOptions(),
- DartSdkManager(''),
- CrashReportingAttachmentsBuilder.empty,
- InstrumentationService.NULL_SERVICE);
- handler = ServerDomainHandler(server);
+ defineReflectiveSuite(() {
+ defineReflectiveTests(ServerDomainTest);
});
+}
- group('ServerDomainHandler', () {
- test('getVersion', () {
- var request = ServerGetVersionParams().toRequest('0');
- var response = handler.handleRequest(request, NotCancelableToken())!;
- expect(
- response.toJson(),
- equals({
- Response.ID: '0',
- Response.RESULT: {VERSION: PROTOCOL_VERSION}
- }));
+@reflectiveTest
+class ServerDomainTest extends PubPackageAnalysisServerTest {
+ Future<void> test_getVersion() async {
+ var request = ServerGetVersionParams().toRequest('0');
+ var response = await handleSuccessfulRequest(request);
+ expect(
+ response.toJson(),
+ equals({
+ Response.ID: '0',
+ Response.RESULT: {VERSION: PROTOCOL_VERSION}
+ }));
+ }
+
+ Future<void> test_setSubscriptions_invalidServiceName() async {
+ var request = Request('0', SERVER_REQUEST_SET_SUBSCRIPTIONS, {
+ SUBSCRIPTIONS: ['noSuchService']
});
+ var response = await handleRequest(request);
+ expect(response, isResponseFailure('0'));
+ }
- group('setSubscriptions', () {
- test('invalid service name', () {
- var request = Request('0', SERVER_REQUEST_SET_SUBSCRIPTIONS, {
- SUBSCRIPTIONS: ['noSuchService']
- });
- var response = handler.handleRequest(request, NotCancelableToken());
- expect(response, isResponseFailure('0'));
- });
+ Future<void> test_setSubscriptions_success() async {
+ expect(server.serverServices, isEmpty);
+ // send request
+ var request =
+ ServerSetSubscriptionsParams([ServerService.STATUS]).toRequest('0');
+ await handleSuccessfulRequest(request);
+ // set of services has been changed
+ expect(server.serverServices, contains(ServerService.STATUS));
+ }
- test('success', () {
- expect(server.serverServices, isEmpty);
- // send request
- var request =
- ServerSetSubscriptionsParams([ServerService.STATUS]).toRequest('0');
- var response = handler.handleRequest(request, NotCancelableToken());
- expect(response, isResponseSuccess('0'));
- // set of services has been changed
- expect(server.serverServices, contains(ServerService.STATUS));
- });
- });
-
- test('shutdown', () async {
- var request = ServerShutdownParams().toRequest('0');
- var response = await serverChannel.sendRequest(request);
- expect(response, isResponseSuccess('0'));
- });
- });
+ Future<void> test_shutdown() async {
+ var request = ServerShutdownParams().toRequest('0');
+ await handleSuccessfulRequest(request);
+ }
}
diff --git a/pkg/pkg.status b/pkg/pkg.status
index 2aef55f..38658de 100644
--- a/pkg/pkg.status
+++ b/pkg/pkg.status
@@ -145,6 +145,8 @@
vm_snapshot_analysis/test/*: SkipByDesign # Only meant to run on vm
[ $system == windows ]
+dds/test/devtools_server/devtools_server_connection_test: Pass, Slow
+dds/test/devtools_server/devtools_server_test: Pass, Slow
front_end/test/fasta/bootstrap_test: Skip # Issue 31902
front_end/test/fasta/strong_test: Pass, Slow, Timeout
front_end/test/fasta/text_serialization_test: Pass, Slow, Timeout
diff --git a/tools/VERSION b/tools/VERSION
index 40589b0..0ec8410 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
MAJOR 2
MINOR 17
PATCH 0
-PRERELEASE 265
+PRERELEASE 266
PRERELEASE_PATCH 0
\ No newline at end of file