Ok, applied it only to trunk for Camel 2.10.0 because it's to late for
Camel 2.9.1

Best,
Christian

On Tue, Feb 28, 2012 at 9:02 AM, Claus Ibsen <claus.ib...@gmail.com> wrote:

> Hi
>
> Yeah the headers can most likely be copied today if the JMS brokers do
> not barf anymore.
>
> However I had hoped in the mean time we had fixed this and released
> Camel 3.0, where we can optimize the logic
> to only copy on demand. I once had some experimental code for this to
> check the routes if the useOriginalMessage option was enabled or not.
> And thus only do the copy if needed. Currently the logic is *always*
> doing a defensive copy, even if the useOriginalMessage is not enabled.
>
> As well for JmsMessage when we do a copy it will have to access the
> JMS API to gather the JMS headers and whatnot.
> And for people who do straight through messaging, this is really not
> needed.
>
> Anyway I think for Camel 2.10 we can possible copy the headers as well
> for JMS, if there is no issues.
> I would like to test this with other JMS brokers than AMQ, if possible.
> For older releases such as 2.9.x and below, I would keep current
> behavior to not introduce side-effects for people using Camel in
> production.
>
>
>
> On Mon, Feb 27, 2012 at 2:18 PM, Babak Vahdat
> <babak.vah...@swissonline.ch> wrote:
> > Hi Christian,
> >
> > I did verify it as well and indeed copying headers would also work even
> if
> > we deal with JmsMessage as well. However I've got no idea about the
> comment:
> >
> > // cannot copy headers with a JmsMessage as the underlying
> javax.jms.Message
> > object goes nuts
> >
> > Which came across the revision [1]. My assumption is that it used to
> cause
> > problems to copy the jms headers in old days of ActiveMQ (2009) so why
> this
> > comment.
> >
> > However what I also don't get is that according to [2] the JMS
> specification
> > states that header names must be valid Java identifiers, but ActiveMQ
> > (5.5.1) seems to allow even non valid Java Identifiers as header name! I
> > tried with "%" which is not a valid Java Identifier:
> >
> > javax.lang.model.SourceVersion.RELEASE_6.isIdentifier("%");
> >
> > And the test still passed:
> >
> > mockResult.expectedHeaderReceived("%", "header-value");
> >
> > I hope Claus can help us regarding this question. BTW just in case you
> get
> > some spare time would you please take a look at [3] as well?
> >
> > Thanks.
> >
> > [1] http://svn.apache.org/viewvc?view=revision&revision=792966
> > [2] http://camel.apache.org/jms.html#JMS-MessageHeaderMapping
> > [3]
> http://camel.465427.n5.nabble.com/ObjectConverter-problem-td5517376.html
> >
> > Babak
> >
> > --
> > View this message in context:
> http://camel.465427.n5.nabble.com/DefaultUnitOfWork-doesn-t-copy-headers-from-the-original-message-if-it-s-a-JmsMessage-tp5518546p5518888.html
> > Sent from the Camel Development mailing list archive at Nabble.com.
>
>
>
> --
> Claus Ibsen
> -----------------
> FuseSource
> Email: cib...@fusesource.com
> Web: http://fusesource.com
> Twitter: davsclaus, fusenews
> Blog: http://davsclaus.blogspot.com/
> Author of Camel in Action: http://www.manning.com/ibsen/
>

Reply via email to