public static void copyBody(Message source, Message target) {
        // Preserve the DataType if both messages are DataTypeAware
        if (source.hasTrait(MessageTrait.DATA_AWARE)) {
            target.setBody(source.getBody());
            target.setPayloadForTrait(MessageTrait.DATA_AWARE,
                    source.getPayloadForTrait(MessageTrait.DATA_AWARE));

            return;
        }

        target.setBody(source.getBody());
    }
@Test
    void shouldCopyBodyIfTargetNotDataTypeAware() {
        Object body = new Object();
        Message m1 = new MyMessageType(body);
        Message m2 = new DefaultMessage((Exchange) null);
        copyBody(m1, m2);
        assertSame(body, m2.getBody());
    }