Let Method call expression accept a nested list of expressions for parameter 
mapping in XML DSLs
------------------------------------------------------------------------------------------------

                 Key: CAMEL-4753
                 URL: https://issues.apache.org/jira/browse/CAMEL-4753
             Project: Camel
          Issue Type: New Feature
          Components: camel-blueprint, camel-core, camel-spring
    Affects Versions: 2.9.0
            Reporter: Claus Ibsen
             Fix For: 2.10, Future


When using a method call expression, people may want to map parameters. 
Currently they can use the method name attribute, which supports this in Camel 
2.9 onwards. Using a syntax that is similar to java code. See
http://camel.apache.org/bean-binding.html

However Christian S. suggested to also allow to map using a nested list of 
Expression. So you can do

{code:xml}
<method ref="myBean" method="myMethod">
  <xpath>/foo/bar</xpath>
  <simple>${header.cool}</simple>
</method>
{code}

That will invoke the myMethod with 2 parameters, and the 1st is the xpath, and 
the 2nd the simple.

Likewise we could consider improving the <bean> as well, if you want to invoke 
a bean in a route, eg like a <to>

{code:xml}
<bean ref="myBean" method="myMethod">
  <xpath>/foo/bar</xpath>
  <simple>${header.cool}</simple>
</bean>
{code}

And for the Java DSL, we may support this as well by using varargs for the list 
of expressions
{code}
.beanRef("myBean", "myMethod", xpath("/foo/bar"), simple("${header.cool"))
{code}

The trick is to support this as well in the scala DSL.
And to ensure backwards compatibility.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to