You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@camel.apache.org by Reji Mathews <re...@huawei.com> on 2019/12/23 17:52:15 UTC

Building camel route step by step using handler patterns

Hello camel community !

I am trying to build a camel route incrementally using java fluent api on the RouteDefinition object. Code snippet as follows

Following method is inside another class which already implements RouteBuilder class

@Override
public RouteDefinition handleStep(int stepIndex, Step step, RouteDefinition routeDefinition) throws Exception{
    if(stepIndex ==0){
        return from("direct:pointA");
    } else {
        return routeDefinition.to("direct:pointA"");
    }
}

On execution, I am hit by following stack trace at the line -> return from("direct:pointA");


org.apache.camel.RuntimeCamelException: java.lang.NullPointerException
                at org.apache.camel.RuntimeCamelException.wrapRuntimeCamelException(RuntimeCamelException.java:52)
                at org.apache.camel.model.RouteDefinitionHelper.initRouteInput(RouteDefinitionHelper.java:460)
                at org.apache.camel.model.RouteDefinitionHelper.prepareRouteImp(RouteDefinitionHelper.java:374)
                at org.apache.camel.model.RouteDefinitionHelper.prepareRoute(RouteDefinitionHelper.java:347)
                at org.apache.camel.model.RoutesDefinition.route(RoutesDefinition.java:196)
                at org.apache.camel.model.RoutesDefinition.from(RoutesDefinition.java:167)
                at org.apache.camel.builder.RouteBuilder.from(RouteBuilder.java:230)
                at com.huawei.camel.core.handlers.flowstep.FlowConnectorStepHandler.handleStep(FlowConnectorStepHandler.java:40)
                at com.huawei.camel.core.route.RomaRouteBuilder.configure(AppRouteBuilder.java:44)
                at org.apache.camel.builder.RouteBuilder.checkInitialized(RouteBuilder.java:471)
                at org.apache.camel.builder.RouteBuilder.configureRoutes(RouteBuilder.java:438)

Is there any better way to build a consumer endpoint apart from the way it's done in above snippet?