Hello guys,

I am solving a problem with Camel 2.11 and Karaf 2.3.1. I have a route,
where I use .loop() and in this route I call a web service which returns
response which I want to keep. I need to keep all responses and then print
them in the output message. After the loop ends, I have only the last
response.

Here is the route:

Predicate isServiceEnabled =
property(AddProjectBean.SERVICE_STATUS).isEqualTo(true);
Predicate serviceNeedsUpdate =
property(AddProjectBean.SERVICE_NEEDS_UPDATE).isEqualTo(true);
from("direct:addNextProjects")
                .routeId("addNextProjects")
                .choice()
                .when(isServiceEnabled)
                        .beanRef("addProjectBean", "setServiceLoopIndex")
                        .choice()
                        .when(serviceNeedsUpdate)
                                
.loop(property(AddProjectBean.CAMEL_LOOP_SIZE_PROPERTY))
                                
.setProperty(AddProjectBean.SERVICE_INDEX_PROPERTY,
property(ProductUpdateBean.CAMEL_LOOP_INDEX_PROPERTY))
                                .beanRef("addProjectBean", 
"incrementServiceIndex")
                                .to("direct:createNewProject")
                        .endChoice()
                        .otherwise()
                                .setBody(constant("SERVICE doesn't need 
updating"))
                        .end()
                .endChoice()
                .otherwise()
        .setBody(constant("SERVICE is not enabled"));

I need to save response body from .to("direct:createNewProject") after each
loop and in the end to have a property, header or something which will
contain all responses, according to the number of loops. So if I add two new
services, I will have two responses saved somewhere.

Thank you for any idea

-Br, Roman



--
View this message in context: 
http://camel.465427.n5.nabble.com/Loop-saving-responses-tp5751918.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Reply via email to