camel-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Matt Pavlovich <>
Subject Re: 3.0 Ideas
Date Fri, 22 Mar 2013 17:24:59 GMT
For 3.0.. Have there been any discussions about possible improvement on how the headers and
properties work across the components?

One of the common headaches is sorting through when component A -> component B, but component
A is providing some incompatible headers, or headers that shouldn't be propagated. The solution
ends up being clearing a bunch of headers, or resetting some headers using expressions or
processors. There is a ton of great value in being able to use the headers to impact component
behavior (things like CamelJMSDestinationName, etc), and we definitely don't want to lose

It seems to boil down to: How can we strike a balance between the developer (writer of Camel
routes) experience and functionality?

I don't have a solution off-hand, but thought it'd make for interesting discussion. 

 - Maybe its a policy thing? ie.. improved "namespace" of headers?  Camel.Jetty..  Camel.CXF..
Camel.HTTP etc..?
 - Maybe components leverage Exchange properties more than message headers?
 - Maybe there is a special set of properties or headers reserved for Camel components to
use, that get dropped by default?  getComponentProperties()..
 - Maybe a HeaderFilterProcessor that would provide convenience functions for doing common
header tasks?
 - Maybe just some components need to have a refresh on their header handling?

Things like:

 <from uri="jetty:http…"/>
 <to uri="jetty:http.."/>

.. and ..

 <from uri="cxf:.."/>
 <to uri="jetty:.."/>

 <from uri="jetty:.."/>
 <to uri="cxf:.."/>

 <from uri="jetty.."/>
 <to uri="cxfrs:.."/>

 <from uri="jetty:http.." />
 <to uri="http4:// .. "/>

It'd be really handy if the above were interchangeable (aside from payload concerns). 

At the same time.. 

  <from uri="jetty.."/>
  <to uri="smtp .. "/>  (Yikes, need to clear headers!)

 <from uri="jetty.."/>
 <to uri="jms.. "/>   (I want these [x,y,z,a,b,c] headers propagated, but drop the rest..

Matt Pavlovich
View raw message