private static Message buildReply(Message message, SimpleEvaluationObject seo) { // Send the REPLY to the original message. This is NOT the result of // executing the cell. This is the equivalent of 'exit 0' or 'exit 1' // at the end of a shell script. Message reply = buildReplyWithoutStatus(message, seo.getExecutionCount()); if (EvaluationStatus.FINISHED == seo.getStatus()) { reply.getMetadata().put("status", "ok"); reply.getContent().put("status", "ok"); reply.getContent().put("user_expressions", new HashMap<>()); } else if (EvaluationStatus.ERROR == seo.getStatus()) { reply.getMetadata().put("status", "error"); reply.getContent().put("status", "error"); } return reply; }
private synchronized void sendMsg(ZMQ.Socket socket, List<Message> messages) { if (!isShutdown()) { messages.forEach(message -> { String header = toJson(message.getHeader()); String parent = toJson(message.getParentHeader()); String meta = toJson(message.getMetadata()); String content = toJson(message.getContent()); String digest = hmac.sign(Arrays.asList(header, parent, meta, content)); ZMsg newZmsg = new ZMsg(); message.getIdentities().forEach(newZmsg::add); newZmsg.add(DELIM); newZmsg.add(digest.getBytes(StandardCharsets.UTF_8)); newZmsg.add(header.getBytes(StandardCharsets.UTF_8)); newZmsg.add(parent.getBytes(StandardCharsets.UTF_8)); newZmsg.add(meta.getBytes(StandardCharsets.UTF_8)); newZmsg.add(content.getBytes(StandardCharsets.UTF_8)); message.getBuffers().forEach(x -> newZmsg.add(x)); newZmsg.send(socket); }); } }
@Test public void initMessageWithData_messageHasDataIsNotNull() { //when Message message = createMessage(); //then Assertions.assertThat(message.getIdentities()).isNotEmpty(); Assertions.assertThat(message.getHeader()).isNotNull(); Assertions.assertThat(message.getParentHeader()).isNotNull(); Assertions.assertThat(message.getMetadata()).isNotNull(); Assertions.assertThat(message.getContent()).isNotNull(); } }
private static Message copyMessage(Message origin) { String header = toJson(origin.getHeader()); Message copy = new Message(parse(header, Header.class)); for (byte[] list : origin.getIdentities()) { copy.getIdentities().add(list.clone()); } String parent = toJson(origin.getParentHeader()); String metadata = toJson(origin.getMetadata()); String content = toJson(origin.getContent()); copy.setParentHeader(parse(parent, Header.class)); copy.setMetadata(parse(metadata, LinkedHashMap.class)); copy.setContent(parse(content, LinkedHashMap.class)); return copy; }