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 > >
