This is a bug for sure. The headers which come in on the Camel gateway (JMS component in this case) are not being mapped back into the Camel exchange that's used in the route. It's likely that you can define a message composer to make this happen. Can you create a JIRA and attach a stripped down sample application which is just the JMS gateway binding and the Camel route which attempts to access a header?

I will be looking at this soon for you. I assigned the jira to me and will make sure things are working as expected for the 0.4 release. I do appreciate that you have provided a test case and steps to reproduce. That helps a lot, so thank you.

One thing I noticed right away is that you haven't specified a context mapper in your binding model. If you don't do that, no headers or properties will get propagated. You need to add the <contextMapper/> element, like so:

Hmmm... Having issues getting your test case to run properly. I'm pretty sure what I suggested above should fix your issue, so if you could just validate that before I spend unecessary time on getting the test environment correct, I'd appreciate it.

You will still need to add the <contextMapper/>, but I've run your tests with the fix and they now work as expected (the json one as well as the pure jms one).

Note: You were using SwitchYard 0.3.0.Final. I did the above fix with 0.4.0-SNAPSHOT. It was localized to one class (as you can see in the associated pull request), but I did not try to back-port it to 0.3.0 and test there.