Chromium Code Reviews| Index: pkg/analysis_server/lib/src/domain_server.dart |
| diff --git a/pkg/analysis_server/lib/src/domain_server.dart b/pkg/analysis_server/lib/src/domain_server.dart |
| index e213bdd7a904d2d811b4609f7a65915cbc22a77f..7c2cdd7d5f625b1ec489d986e6b47f4b4822f0bd 100644 |
| --- a/pkg/analysis_server/lib/src/domain_server.dart |
| +++ b/pkg/analysis_server/lib/src/domain_server.dart |
| @@ -6,11 +6,6 @@ library domain.server; |
| import 'package:analysis_server/src/analysis_server.dart'; |
| import 'package:analysis_server/src/protocol.dart'; |
| -import 'package:analyzer/src/generated/engine.dart'; |
| -import 'package:analyzer/src/generated/java_io.dart'; |
| -import 'package:analyzer/src/generated/sdk_io.dart'; |
| -import 'package:analyzer/src/generated/source.dart'; |
| -import 'package:analyzer/src/generated/source_io.dart'; |
| /** |
| * Instances of the class [ServerDomainHandler] implement a [RequestHandler] |
| @@ -18,34 +13,18 @@ import 'package:analyzer/src/generated/source_io.dart'; |
| */ |
| class ServerDomainHandler implements RequestHandler { |
| /** |
| - * The name of the server.createContext request. |
| + * The name of the `server.version` request. |
|
Brian Wilkerson
2014/05/24 15:19:49
'version' --> 'getVersion'
scheglov
2014/05/24 15:34:42
Done.
|
| */ |
| - static const String CREATE_CONTEXT_METHOD = 'server.createContext'; |
| + static const String GET_VERSION_METHOD = 'server.getVersion'; |
| - /** |
| - * The name of the server.deleteContext request. |
| - */ |
| - static const String DELETE_CONTEXT_METHOD = 'server.deleteContext'; |
| + /// The name of the `server.setSubscriptions` request. |
| + static const String SET_SUBSCRIPTIONS_METHOD = 'server.setSubscriptions'; |
| - /** |
| - * The name of the server.shutdown request. |
| - */ |
| + /// The name of the `server.shutdown` request. |
| static const String SHUTDOWN_METHOD = 'server.shutdown'; |
| - /** |
| - * The name of the server.version request. |
| - */ |
| - static const String VERSION_METHOD = 'server.version'; |
| - |
| - /** |
| - * The name of the packageMap parameter. |
| - */ |
| - static const String PACKAGE_MAP_PARAM = 'packageMap'; |
| - |
| - /** |
| - * The name of the sdkDirectory parameter. |
| - */ |
| - static const String SDK_DIRECTORY_PARAM = 'sdkDirectory'; |
| + /// The name of the `subscriptions` parameter. |
| + static const String SUBSCRIPTIONS_PARAMETER = 'subscriptions'; |
| /** |
| * The name of the version result value. |
| @@ -66,14 +45,12 @@ class ServerDomainHandler implements RequestHandler { |
| Response handleRequest(Request request) { |
| try { |
| String requestName = request.method; |
| - if (requestName == CREATE_CONTEXT_METHOD) { |
| - return createContext(request); |
| - } else if (requestName == DELETE_CONTEXT_METHOD) { |
| - return deleteContext(request); |
| + if (requestName == GET_VERSION_METHOD) { |
| + return getVersion(request); |
| + } else if (requestName == SET_SUBSCRIPTIONS_METHOD) { |
| + return setSubscriptions(request); |
| } else if (requestName == SHUTDOWN_METHOD) { |
| return shutdown(request); |
| - } else if (requestName == VERSION_METHOD) { |
| - return version(request); |
| } |
| } on RequestFailure catch (exception) { |
| return exception.response; |
| @@ -81,57 +58,67 @@ class ServerDomainHandler implements RequestHandler { |
| return null; |
| } |
| - /** |
| - * Create a new context in which analysis can be performed. The context that |
| - * is created will persist until server.deleteContext is used to delete it. |
| - * Clients, therefore, are responsible for managing the lifetime of contexts. |
| - */ |
| - Response createContext(Request request) { |
| - String sdkDirectory = request.getRequiredParameter(SDK_DIRECTORY_PARAM).asString(); |
| - Map<String, String> packageMap = request.getParameter(PACKAGE_MAP_PARAM, {}).asStringMap(); |
| - |
| - String contextId = request.getRequiredParameter(AnalysisServer.CONTEXT_ID_PARAM).asString(); |
| - if (server.contextMap.containsKey(contextId)) { |
| - return new Response.contextAlreadyExists(request); |
| - } |
| - AnalysisContext context = AnalysisEngine.instance.createAnalysisContext(); |
| - // TODO(brianwilkerson) Use the information from the request to set the |
| - // source factory in the context. |
| - DirectoryBasedDartSdk sdk; |
| - try { |
| - sdk = new DirectoryBasedDartSdk(new JavaFile(sdkDirectory)); |
| - } on Exception catch (e) { |
| - // TODO what error code should be returned here? |
| - return new Response(request.id, new RequestError( |
| - RequestError.CODE_SDK_ERROR, 'Failed to access sdk: $e')); |
| - } |
| - context.sourceFactory = new SourceFactory([ |
| - new DartUriResolver(sdk), |
| - new FileUriResolver(), |
| - // new PackageUriResolver(), |
| - ]); |
| - server.contextMap[contextId] = context; |
| - server.contextIdMap[context] = contextId; |
| - |
| - Response response = new Response(request.id); |
| - return response; |
| + /// Subscribe for services. |
| + /// |
| + /// All previous subscriptions are replaced by the given set of subscriptions. |
| + Response setSubscriptions(Request request) { |
| + var subDatum = request.getRequiredParameter(SUBSCRIPTIONS_PARAMETER); |
|
Brian Wilkerson
2014/05/24 15:19:49
Local variables should have full type information.
scheglov
2014/05/24 15:34:42
Done.
|
| + server.serverServices = subDatum.asEnumSet(ServerService.VALUES); |
| + return new Response(request.id); |
| } |
| - /** |
| - * Delete the context with the given id. Future attempts to use the context id |
| - * will result in an error being returned. |
| - */ |
| - Response deleteContext(Request request) { |
| - String contextId = request.getRequiredParameter(AnalysisServer.CONTEXT_ID_PARAM).asString(); |
| - |
| - AnalysisContext removedContext = server.contextMap.remove(contextId); |
| - if (removedContext == null) { |
| - return new Response.contextDoesNotExist(request); |
| - } |
| - server.contextIdMap.remove(removedContext); |
| - Response response = new Response(request.id); |
| - return response; |
| - } |
| + // TODO(scheglov) remove or move to the 'analysis' domain |
|
Brian Wilkerson
2014/05/24 15:19:49
Is there a question about whether we want these AP
scheglov
2014/05/24 15:34:42
We don't want these API's.
But I'd not like to rem
|
| +// /** |
| +// * Create a new context in which analysis can be performed. The context that |
| +// * is created will persist until server.deleteContext is used to delete it. |
| +// * Clients, therefore, are responsible for managing the lifetime of contexts. |
| +// */ |
| +// Response createContext(Request request) { |
| +// String sdkDirectory = request.getRequiredParameter(SDK_DIRECTORY_PARAM).asString(); |
| +// Map<String, String> packageMap = request.getParameter(PACKAGE_MAP_PARAM, {}).asStringMap(); |
| +// |
| +// String contextId = request.getRequiredParameter(AnalysisServer.CONTEXT_ID_PARAM).asString(); |
| +// if (server.contextMap.containsKey(contextId)) { |
| +// return new Response.contextAlreadyExists(request); |
| +// } |
| +// AnalysisContext context = AnalysisEngine.instance.createAnalysisContext(); |
| +// // TODO(brianwilkerson) Use the information from the request to set the |
| +// // source factory in the context. |
| +// DirectoryBasedDartSdk sdk; |
| +// try { |
| +// sdk = new DirectoryBasedDartSdk(new JavaFile(sdkDirectory)); |
| +// } on Exception catch (e) { |
| +// // TODO what error code should be returned here? |
| +// return new Response(request.id, new RequestError( |
| +// RequestError.CODE_SDK_ERROR, 'Failed to access sdk: $e')); |
| +// } |
| +// context.sourceFactory = new SourceFactory([ |
| +// new DartUriResolver(sdk), |
| +// new FileUriResolver(), |
| +// // new PackageUriResolver(), |
| +// ]); |
| +// server.contextMap[contextId] = context; |
| +// server.contextIdMap[context] = contextId; |
| +// |
| +// Response response = new Response(request.id); |
| +// return response; |
| +// } |
| +// |
| +// /** |
| +// * Delete the context with the given id. Future attempts to use the context id |
| +// * will result in an error being returned. |
| +// */ |
| +// Response deleteContext(Request request) { |
| +// String contextId = request.getRequiredParameter(AnalysisServer.CONTEXT_ID_PARAM).asString(); |
| +// |
| +// AnalysisContext removedContext = server.contextMap.remove(contextId); |
| +// if (removedContext == null) { |
| +// return new Response.contextDoesNotExist(request); |
| +// } |
| +// server.contextIdMap.remove(removedContext); |
| +// Response response = new Response(request.id); |
| +// return response; |
| +// } |
| /** |
| * Cleanly shutdown the analysis server. |
| @@ -145,9 +132,9 @@ class ServerDomainHandler implements RequestHandler { |
| /** |
| * Return the version number of the analysis server. |
| */ |
| - Response version(Request request) { |
| + Response getVersion(Request request) { |
| Response response = new Response(request.id); |
| response.setResult(VERSION_RESULT, '0.0.1'); |
| return response; |
| } |
| -} |
| +} |