import java.util.Objects;
import java.util.function.Consumer;
import java.util.function.Supplier;
-import java.util.stream.Collectors;
import java.util.stream.StreamSupport;
public class JsonRpcReader {
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());
+ }).filter(Objects::nonNull).toList();
- jsonRpcSender.sendBulkResponses(responseList);
+ jsonRpcSender.sendBatchResponses(responseList);
}
}
}
null), null));
return null;
}
- return new JsonRpcBulkMessage(StreamSupport.stream(jsonNode.spliterator(), false)
- .collect(Collectors.toList()));
+ return new JsonRpcBatchMessage(StreamSupport.stream(jsonNode.spliterator(), false).toList());
} else if (jsonNode.isObject()) {
if (jsonNode.has("result") || jsonNode.has("error")) {
return parseJsonRpcResponse(jsonNode);