There is no copy capability directly. What part of the Message do you want to copy? Header? Body?
What I am trying to do is this:
I have a splitter class which breaks up an incoming message into a series of smaller messages, each of which is routed to another service. In practice, the splitter iterates over the split parts of the initial message, replaces the unsplit contents at Body.DEFAULT_LOCATION with each split part, and then routes the modified message.
What I want to do is hold on to the original message so that, in case of some error along the way, I can send this message to an error service. Any suggestions on how to do this?
You could externalize it and then internalize it. Take a look at Util.serialize and Util.deserialize. I think they're your best bet at the moment.