this.objectMapper = Util.createJsonObjectMapper();
}
- public void readRequests(
- final RequestHandler requestHandler, final Consumer<JsonRpcResponse> responseHandler
- ) {
+ public void readMessages(final RequestHandler requestHandler, final Consumer<JsonRpcResponse> responseHandler) {
while (!Thread.interrupted()) {
JsonRpcMessage message = readMessage();
if (message == null) break;
- if (message instanceof JsonRpcRequest) {
- final var response = handleRequest(requestHandler, (JsonRpcRequest) message);
+ if (message instanceof final JsonRpcRequest jsonRpcRequest) {
+ logger.debug("Received json rpc request, method: " + jsonRpcRequest.method);
+ final var response = handleRequest(requestHandler, jsonRpcRequest);
if (response != null) {
jsonRpcSender.sendResponse(response);
}
- } else if (message instanceof JsonRpcResponse) {
- responseHandler.accept((JsonRpcResponse) message);
+ } else if (message instanceof JsonRpcResponse jsonRpcResponse) {
+ responseHandler.accept(jsonRpcResponse);
} else {
- final var responseList = ((JsonRpcBulkMessage) message).getMessages().stream().map(jsonNode -> {
+ final var responseList = ((JsonRpcBatchMessage) message).getMessages().stream().map(jsonNode -> {
final JsonRpcRequest request;
try {
request = parseJsonRpcRequest(jsonNode);
return handleRequest(requestHandler, request);
}).filter(Objects::nonNull).collect(Collectors.toList());
- jsonRpcSender.sendBulkResponses(responseList);
+ jsonRpcSender.sendBatchResponses(responseList);
}
}
}
final var result = requestHandler.apply(request.getMethod(), request.getParams());
if (request.getId() != null) {
return JsonRpcResponse.forSuccess(result, request.getId());
+ } else {
+ logger.debug("Command '{}' succeeded but client didn't specify an id, dropping response",
+ request.getMethod());
}
} catch (JsonRpcException e) {
if (request.getId() != null) {
return JsonRpcResponse.forError(e.getError(), request.getId());
+ } else {
+ logger.debug("Command '{}' failed but client didn't specify an id, dropping error: {}",
+ request.getMethod(),
+ e.getMessage());
}
}
return null;
null), null));
return null;
}
- return new JsonRpcBulkMessage(StreamSupport.stream(jsonNode.spliterator(), false)
+ return new JsonRpcBatchMessage(StreamSupport.stream(jsonNode.spliterator(), false)
.collect(Collectors.toList()));
} else if (jsonNode.isObject()) {
if (jsonNode.has("result") || jsonNode.has("error")) {