Hi

CAMEL-653 got me triggered, as the bean component is one of the greatest 
feature in Camel - that its so well integrated with the POJO programming model.
https://issues.apache.org/activemq/browse/CAMEL-653

And this issue as also for the file headername that is also a pain in the a** 
for end-users

However end-users use JMS to send exchanges and we lose headers as the header 
keys are not valid according to the JMS spec so they are removed in a filter.

We have some issues reported on this already:
http://issues.apache.org/activemq/browse/CAMEL-239
http://issues.apache.org/activemq/browse/CAMEL-227

I am wondering if we can do something for 1.4?

I have this simple strategy that when an message is sent over the JMS wire its 
header keys that have (dots) in their name is replaced with a valid character 
such as underscore.

Then org.apache.camel.MethodName is sent over as org_apache_camel_MethodName 
and then when there is a lookup for a property on the JmsMessage (Camel class) 
then we use the decoded safe key to look for org_apache_camel_MethodName when 
the input was the original key (org.apache.camel.MethodName). We could also try 
to restore the original key names on the Jms message itself when Camel consumes 
the message.

Using this we are able to preserve method name for the bean component and the 
filename for the file component. Or just test if the key starts with 
"org.apache.camel" then we should be more safe for the future.


Another strategy is to only cater specially for the File and Bean component to 
preserve its MethodName and FileName properties? Then we will be able to 
restore the keys with the original name on the underlying JmsMessage.

Any thoughts on this?




Med venlig hilsen

Claus Ibsen
......................................
Silverbullet
Skovsgårdsvænget 21
8362 Hørning
Tlf. +45 2962 7576
Web: www.silverbullet.dk

Reply via email to