Improve JMS header name endocing/decoding strategy
--------------------------------------------------
Key: CAMEL-1212
URL: https://issues.apache.org/activemq/browse/CAMEL-1212
Project: Apache Camel
Issue Type: Improvement
Components: camel-jms
Affects Versions: 1.5.0
Reporter: Jason Royals
We have a scenario where we need to perform the following style of integration:
{code}
HTTP -> JMS -> HTTP
{code}
The final HTTP endpoint needs to receive the headers as they were in the
original HTTP request. However, I am finding that the HTTP headers that
contain a hyphen (such as Content-Type, Content-Length etc) are being omitted
when the messages go onto the queue.
{{JmsBinding}} has two static methods to perform some basic header manipulation
to "encode" and "decode" headers that are not valid Java identifiers. However,
the strategy employed does not handle hyphens or other illegal characters, only
periods. Secondly, as static methods they cannot be overridden by my own
extension of {{JmsBinding}}. And finally, {{JmsHeaderFilterStrategy}} has a
static link back to these methods in {{JmsBinding}} so that makes it hard to
replace.
To me, it would be more appropriate that {{HeaderFilterStrategy}}
implementations should actually contain the code to
# Advise if a header needs to be encoded/decoded, which it already does, but in
addition;
# Actually perform that encoding/decoding in it's own implementation-specific
way
This affects 1.5.0 but it's also in the trunk like this.
I have a workaround which is a little messy but it works :-)
Thanks,
Jason
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.