@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();
}