vendredi 13 mars 2015

Camel - when().simple returns body only for last condition



when().simple returns body only for last condition. For other conditions it is returning empty. Here is my configuration,



camel version - 2.15.0,
spring version - 4.1.5.RELEASE

<camel:camelContext id="camelContext" trace="true" streamCache="true">
<camel:contextScan />
</camel:camelContext>


Route definition,



from("direct:test")
.choice()
.when().simple("${header.operationName} == ${type:com.jaks.Type.READ}").to("bean:routeBean?method=read")
.when().simple("${header.operationName} == ${type:com.jaks.Type.CREATE}").to("bean:routeBean?method=create")
.when().simple("${header.operationName} == ${type:com.jaks.Type.UPDATE}").to("bean:routeBean?method=update")
.endChoice()
.to("bean:routeBean?method=receive");


When I tested via JUnit, only last when().simple (i.e UPDATE) is returning body. Here is the console log,



>>> (route1) --> choice <<< Pattern:InOnly, Headers:{breadcrumbId=53912-1426296471727-0-1, operationName=UPDATE}, BodyType:String, Body:UPDATE
>>> (route1) choice --> bean://routeBean?method=update <<< Pattern:InOnly, Headers:{breadcrumbId=53912-1426296471727-0-1, operationName=UPDATE}, BodyType:String, Body:UPDATE
>>> (route1) bean://routeBean?method=update --> bean://routeBean?method=receive <<< Pattern:InOnly, Headers:{breadcrumbId=53912-1426296471727-0-1, operationName=UPDATE}, BodyType:String, Body:UPDATE

>>> (route1) --> choice <<< Pattern:InOnly, Headers:{breadcrumbId=53912-1426296471727-0-3, operationName=CREATE}, BodyType:String, Body:CREATE
>>> (route1) choice --> bean://routeBean?method=create <<< Pattern:InOnly, Headers:{breadcrumbId=53912-1426296471727-0-3, operationName=CREATE}, BodyType:String, Body:CREATE

>>> (route1) --> choice <<< Pattern:InOnly, Headers:{breadcrumbId=53912-1426296471727-0-5, operationName=READ}, BodyType:String, Body:READ
>>> (route1) choice --> bean://routeBean?method=read <<< Pattern:InOnly, Headers:{breadcrumbId=53912-1426296471727-0-5, operationName=READ}, BodyType:String, Body:READ


I have enabled stream caching also. Please let me know what I am doing here wrong. Thanks.




Aucun commentaire:

Enregistrer un commentaire