> > Another option I guess is to reserve message headers only for protocol > related stuff; and use Exchange properties for anything else? >
We could be setting headers in any of the three (in, out, fault) messages. Using Exchange properties may lose the info regarding which message the property is assocated with. See the PipelineTest for an illustration, "copy-counter" can be set in fault and out message and can hold different values. (Also, can't deprecate a method and add new method only different by return type). I'd probably leave the set/getHeader alone and expermient with adding set/getProtocolHeader. Maybe I'll shoot myself down :-)
