private Payload generatePayload(ServiceMessage msg) { try { ByteArrayOutputStream dataStream = new ByteArrayOutputStream(); dataCodec.encode(dataStream, msg.data()); System.out.println("generated dataBuffer: " + dataStream.toString()); ByteBuf dataBuffer = ByteBufAllocator.DEFAULT.buffer(); dataBuffer.writeBytes(dataStream.toByteArray()); ByteArrayOutputStream headersStream = new ByteArrayOutputStream(); headersCodec.encode(headersStream, msg.headers()); System.out.println("generated headersBuffer: " + headersStream.toString()); ByteBuf headersBuffer = ByteBufAllocator.DEFAULT.buffer(); headersBuffer.writeBytes(headersStream.toByteArray()); return ByteBufPayload.create(dataBuffer, headersBuffer); } catch (Throwable t) { throw new RuntimeException(t.getMessage(), t); } }
/** * Instantiates new message with the same data and headers as at given message. * * @param message the message to be copied * @return a new message, with the same data and headers */ public static Builder from(ServiceMessage message) { return ServiceMessage.builder().data(message.data()).headers(message.headers()); }
/** * Get a builder by pattern form given {@link ServiceMessage}. * * @param message ServiceMessage form where to copy field values. * @return builder with fields copied from given {@link ServiceMessage} */ public static Builder from(ServiceMessage message) { return new Builder().headers(message.headers()).data(message.data()); }