mmm, it seems that "<simple>${body.method.name}</simple>" works:
<setHeader headerName="methodName"> <simple>${body.method.name}</simple> </setHeader> Any comment about this solution? (is it good?) What happens if the body is not of class org.apache.camel.component.bean.BeanInvocation? Is there a way to check if body is of the right instance? Many thanks!!! Cristiano 2013/7/10 Cristiano Costantini <cristiano.costant...@gmail.com> > Hi All, > > I have a Camel Proxy that pushes "BeanInvokation" exchanges to a camel > route, and I want to route these messages depending on the method name that > is invoked. > > Is there any way to extract this information and put into an header so to > use it in a <choice>? > > > For example, considering the following XML code: > > <camelContext id="camelContext" xmlns=" > http://camel.apache.org/schema/spring"> > <proxy id="myServiceProxy" serviceInterface="org.example.MyService" > serviceUrl="direct:entry" /> > > <route> > <from uri="direct:entry" /> > <setHeader headerName="methodName"> > <?? how to extract the method name ??> > </setHeader> > > <choice> > <when> > <simple>${header.methodName} == 'myMethod1'</simple> > <to uri="log:endoint_1?showAll=true" /> > </when> > <when> > <simple>${header.methodName} == 'myMethod2'</simple> > <to uri="log:endoint_2?showAll=true" /> > </when> > <otherwise> > <throwException ref="unsupportedException" /> > </otherwise> > </choice> > </route> > </camelContext> > > > I'm searching for a solution to be used between the two <setHeader> tags. > > I know I can write a processor, but I will have problems deploying it to > the classpath where I put the route, so I need a solution that rely on the > default camel capability (like using simple language or other expression > languages available with camel). > > > Any idea? > Thank you all! > > Cristiano > > >