Most of the time, the correct Camel Message is retrieve from the exchange using
Message message = hasOut() ? getOut() : getIn();
With this enhancement, the common usage would be supported by these methods.
To try this out, I had to change the Exchange interface, the DefaultExchange implementation (both in camel-core), and RichExchange (in camel-scala). Everything seemed to be fine with the change.