@Override public byte[] serializeMessage(final BasicRuntime runtime, final Message message) throws Exception { ensureInit(runtime); if (message.getPayload() instanceof Throwable && message.getMessageType() == MessageDefinitions.RESPONSE_ERROR) { final StringWriter sw = new StringWriter(); try (PrintWriter pw = new PrintWriter(sw)) { ((Throwable) message.getPayload()).printStackTrace(pw); pw.flush(); } message.withPayload(sw.toString()); } if (message.getHeaders() != null && message.getHeaders().size() == 0) { message.setHeaders(null); } return mapper.writeValueAsBytes(message); }
@Override public byte[] serializeMessage(final BasicRuntime runtime, Message message) throws Exception { final ByteArrayOutputStream baos = new ByteArrayOutputStream(); final ObjectOutput out = createObjectOutput(runtime, baos); out.writeByte(message.getMessageType()); out.writeInt(message.getMessageId()); if (message.getReferenceAddress() != null) { final UUID uuid = message.getReferenceAddress().asUUID(); out.writeLong(uuid.getMostSignificantBits()); out.writeLong(uuid.getLeastSignificantBits()); } else { out.writeLong(0); out.writeLong(0); } out.writeInt(message.getInterfaceId()); out.writeInt(message.getMethodId()); out.writeObject(message.getObjectId()); out.writeObject(message.getHeaders()); out.writeObject(message.getFromNode()); out.writeObject(message.getPayload()); return baos.toByteArray(); }
messageType == MessageDefinitions.ONE_WAY_MESSAGE, methodId, (Object[]) message.getPayload(), null); invocation.setHeaders(message.getHeaders()); invocation.setFromNode(message.getFromNode()); invocation.setMessageId(messageId); logger.debug("Headers for message #" + messageId + " " + message.getHeaders());
@Override public byte[] serializeMessage(BasicRuntime basicRuntime, Message message) throws Exception { return outputPool.run(out -> { return kryoPool.run(kryo -> { out.writeByte(message.getMessageType()); out.writeInt(message.getMessageId()); writeNodeAddress(out, message.getReferenceAddress()); out.writeInt(message.getInterfaceId()); out.writeInt(message.getMethodId()); writeObjectId(kryo, out, message); writeHeaders(kryo, out, message.getHeaders()); writeNodeAddress(out, message.getFromNode()); writePayload(kryo, out, message); out.flush(); return out.getByteArrayOutputStream().toByteArray(); }); }, DEFAULT_BUFFER_SIZE); }
@Override public byte[] serializeMessage(final BasicRuntime runtime, final Message message) throws Exception { ensureInit(runtime); if (message.getPayload() instanceof Throwable && message.getMessageType() == MessageDefinitions.RESPONSE_ERROR) { final StringWriter sw = new StringWriter(); try (PrintWriter pw = new PrintWriter(sw)) { ((Throwable) message.getPayload()).printStackTrace(pw); pw.flush(); } message.withPayload(sw.toString()); } if (message.getHeaders() != null && message.getHeaders().size() == 0) { message.setHeaders(null); } return mapper.writeValueAsBytes(message); }