+ private int subscribeReceive(final List<Manager> managers) {
+ final var subscriptionId = nextSubscriptionId.getAndIncrement();
+ final var handlers = managers.stream().map(m -> {
+ final var receiveMessageHandler = new JsonReceiveMessageHandler(m, s -> {
+ final ContainerNode<?> params = objectMapper.valueToTree(s);
+ ((ObjectNode) params).set("subscription", IntNode.valueOf(subscriptionId));
+ jsonRpcSender.sendRequest(JsonRpcRequest.forNotification("receive", params, null));
+ });
+ m.addReceiveHandler(receiveMessageHandler);
+ return new Pair<>(m, (Manager.ReceiveMessageHandler) receiveMessageHandler);
+ }).toList();
+ receiveHandlers.put(subscriptionId, handlers);
+
+ return subscriptionId;