How to dynamically add headers from map when defining a RouteBuilder

Viewed 94

I'm creating a RouteBuilder for a test:

final RouteBuilder routeBuilder = new RouteBuilder() {

    @Override
    public void configure() throws Exception {
        from(start).routeId(id).
                process(myProcessor).
                to(end);
    }
};
camelContext.addRoutes(routeBuilder);

and I need to also set some headers coming from a Map<String, String>. In other words I'd like to do something like:

headers.entrySet().
        forEach(header -> {
            setHeader(header.getKey(), constant(header.getValue()));
        });

but that setHeader should be related to the RouteDefinition that I was creating inside the #configure method of the RouteBuilder.

How can I do it?

Thanks

1 Answers

Typing from my mobile. Thus format may not be correct:

final RouteBuilder routeBuilder = new RouteBuilder() { 
     @Override
     public void configure() throws Exception {
        RouteDefinition route = from(start).routeId(id);
        headers.entrySet().
            forEach(header -> {
                route = route.setHeader(header.getKey(), 
                    constant(header.getValue()));
            });
            route.process(myProcessor).
            to(end);
        }
};
camelContext.addRoutes(routeBuilder);`
Related