Hi Willem,

thanks for your answer, unfortunately overriding eval is not sufficient as this 
method initializes everything and calls several private methods. By copy I 
meant: new ctor, copy eval, copy instantiateScript and copy 
createBinding to make it work which feels wrong. Furthermore my class needs to 
be placed in a package org.apache.camel.language.groovy which feels odd, too. 
Seems to me like expressions are considered internal camel functionality...


Jens

Sent from my iPhone

On 19.08.2013, at 08:33, Willem jiang <[email protected]> wrote:

> Hi,
> 
> You don't need to copy the class, you can just override the evaluate method 
> to setup the binding as you want.  
> 
> --  
> Willem Jiang
> 
> Red Hat, Inc.
> Web: http://www.redhat.com
> Blog: http://willemjiang.blogspot.com (http://willemjiang.blogspot.com/) 
> (English)
>          http://jnn.iteye.com (http://jnn.javaeye.com/) (Chinese)
> Twitter: willemjiang  
> Weibo: 姜宁willem
> 
> 
> 
> 
> 
> On Monday, August 19, 2013 at 12:47 PM, [email protected] wrote:
> 
>> Hi all!
>> 
>> Is there any chance to extend the binding of a GroovyExpression?
>> Currently (in camel 2.11.1) the Groovy binding is defined on runtime based 
>> on the exchange only and I did not find an extension point. My current 
>> solutions is to use a GroovyExpression2 class which is a copy of the 
>> original class and provided a new constructor method accepting a 
>> Map<String,Object> parameter which is added to Binding. This allows me to 
>> add additional parameters at time of route creation but I doubt this is the 
>> right way.  
>> 
>> Due to the fact createBinding method is private and not protected I can not 
>> derive from GroovyExpression and need to copy the class.  
>> 
>> Thanks in advance
>> 
>> Jens
>> 
>> 
>> 
>> Von meinem iPad gesendet  
> 
> 

Reply via email to