In the Scala API, the idea was to have no difference in `Message` creation inside and outside a processor (i.e. using `Message(payload)`). The Java equivalent for message creation inside a processor is `Message.create(payload, getCurrentMessage())`. But I'm fine to recommend using `msg.withPayload(...)` inside processors (Scala and Java) and using `Message(payload)` (Scala) and `Message.create(payload, null)` (Java) outside processors. If someone by accident uses `Message(payload)` inside a processor, it wouldn't matter (because of implicit `Option[Message]`). In Java, `getCurrentMessage()` *must* be called instead.