package org.myeslib.example.hazelcast.routes; import lombok.RequiredArgsConstructor; import org.apache.camel.Exchange; import org.apache.camel.Processor; import org.apache.camel.builder.RouteBuilder; import org.myeslib.core.Command; import org.myeslib.util.gson.CommandFromStringFunction; import com.google.inject.Inject; @RequiredArgsConstructor(onConstructor=@__(@Inject)) public class ReceiveCommandsAsJsonRoute extends RouteBuilder { final String sourceUri; final String targetUri; final CommandFromStringFunction commandFromStringFunction; @Override public void configure() throws Exception { from(sourceUri) .streamCaching() .routeId("receive-commands-as-json") .process(new Processor() { @Override public void process(Exchange e) throws Exception { String body = e.getIn().getBody(String.class); e.getOut().setBody(commandFromStringFunction.apply(body), Command.class); } }) .log("received id ${body.id} - targetVersion ${body.targetVersion}") .to(targetUri); } }