When getting started with Camel Route implementation. I have encountered a problem: If the contract of the component has multiple methods, I have no idea to find what method is invoked. Fortunately, thank Jorge Morales for the great answer. Additionally, I found the a enhancement was done for this purpose [SWITCHYARD-872] Populate Camel messages with Switchyard metadata - JBoss Issue Tracker .
So, in order to determine which is the invoked operation we could have the routing like this:
<camel:implementation.camel> <route xmlns="http://camel.apache.org/schema/spring" id="CamelMathRoute"> <to uri="log:test?showAll=true" /> <choice> <when> <simple>${header.org.switchyard.operationName} == 'cos'</simple> <to uri="switchyard://MathCos" /> </when> <when> <simple>${header.org.switchyard.operationName} == 'abs'</simple> <to uri="switchyard://MathAbs" /> </when> <otherwise> <to uri="mock:unknown" /> </otherwise> </choice> <to uri="switchyard://MathAll" /> </route> </camel:implementation.camel>
Hope this help!
Comments