camel-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Claus Ibsen <claus.ib...@gmail.com>
Subject Re: [Discuss] - Camel Properties Component - Change tokens to avoid clash with Spring 3.0
Date Fri, 02 Apr 2010 12:41:08 GMT
On Fri, Apr 2, 2010 at 1:36 PM, Guillaume Nodet <gnodet@gmail.com> wrote:
> Could those be parameters on the camel context ?
>

Its possible but there is a resolver in DefaultCamelContext which
depends on knowing the tokens beforehand.
It would be more correct to let the tokens be customizable on
PropertiesComponent.
But for now they are fixed.

I have implemented the suggestion by Martin Krasser to use {{key}}
The camel source code now works with both Spring 2.5 and 3.0.


> On Fri, Apr 2, 2010 at 13:30, Willem Jiang <willem.jiang@gmail.com> wrote:
>
>> +1 for #[], or #p{}.
>> The other options still make the Spring EL confused.
>>
>> Willem
>>
>>
>> Claus Ibsen wrote:
>>
>>> Hi
>>>
>>> See ticket
>>> https://issues.apache.org/activemq/browse/CAMEL-2599
>>>
>>> The problem is that Spring 3.0 includes a EL by default which is
>>> automatic in use in the Spring XML files.
>>> It uses the same tokens as we do with Camel Properties component and
>>> therefore Spring EL fails with an exception.
>>>
>>> The easiest and also least problematic resolution is to use a
>>> different tokens in Camel to avoid the clash.
>>> It will also be least surprise by Camel end users if they mix and
>>> match between Spring EL and Camel Properties.
>>>
>>> So what tokens do you want to use? Currently we did use
>>> - prefix = #{
>>> - suffix = }
>>>
>>> For example:
>>>                from("#{cool.start}")
>>>
>>> .to("log:#{cool.start}?showBodyType=false&showExchangeId=#{cool.showid}")
>>>                    .to("mock:#{cool.result}");
>>>
>>>
>>> A)
>>> ===
>>> I am thinking of changing to:
>>> - prefix = #[
>>> - suffix = ]
>>>
>>> For example:
>>>                from("#[cool.start]")
>>>
>>> .to("log:#[cool.start]?showBodyType=false&showExchangeId=#[cool.showid]")
>>>                    .to("mock:#[cool.result]");
>>>
>>> B)
>>> ===
>>> Or maybe?
>>> - prefix = #p{
>>> - suffix = }
>>>
>>> For example:
>>>                from("#p{cool.start}")
>>>
>>>
>>> .to("log:#p{cool.start}?showBodyType=false&showExchangeId=#p{cool.showid}")
>>>                    .to("mock:#p{cool.result}");
>>>
>>>
>>> C)
>>> ====
>>> We cannot do this one
>>> - prefix = ${
>>> - suffix = }
>>>
>>> As it will clash with Camel Simple language (would take more work to
>>> let them co-exist in peace :)
>>> However we could most likely use a longer preifx such as
>>>
>>> - prefix = ${p:
>>> - suffix = }
>>>
>>> For example:
>>>                from("${p:cool.start}")
>>>
>>>
>>> .to("log:${p:cool.start}?showBodyType=false&showExchangeId=$p{p:cool.showid}")
>>>                    .to("mock:${p:cool.result}");
>>>
>>>
>>> Do you have any thoughts and preference what tokens to use?
>>>
>>>
>>>
>>>
>>
>
>
> --
> Cheers,
> Guillaume Nodet
> ------------------------
> Blog: http://gnodet.blogspot.com/
> ------------------------
> Open Source SOA
> http://fusesource.com
>



-- 
Claus Ibsen
Apache Camel Committer

Author of Camel in Action: http://www.manning.com/ibsen/
Open Source Integration: http://fusesource.com
Blog: http://davsclaus.blogspot.com/
Twitter: http://twitter.com/davsclaus

Mime
View raw message