[ 
https://issues.apache.org/jira/browse/CAMEL-15312?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17168797#comment-17168797
 ] 

Claus Ibsen commented on CAMEL-15312:
-------------------------------------

A problem is the builder is in camel-api, and has no dependeny on the model 
classes, so using a Supplier as indirection, then you can do (maybe a bit ugly)

{code}
        new RouteTemplateParameterBuilder(context, "myTemplate")
            .parameter("foo", "one")
            .parameter("bar", "result")
            .handler(
                    (Supplier<RouteTemplateDefinition>) () -> {
                        RouteTemplateDefinition answer = 
context.getRouteTemplateDefinition("myTemplate");
                        answer.getRoute().getInput().setUri("seda:{{foo}}");
                        return answer;
                    })
            .routeId("myRoute")
            .build();
{code}

This allows to get hold of the route template def, where you can validate, 
mutate, or whatever before the routes are created.

> camel-core - Parameterized RouteBuilder - add support for life cycle handlers
> -----------------------------------------------------------------------------
>
>                 Key: CAMEL-15312
>                 URL: https://issues.apache.org/jira/browse/CAMEL-15312
>             Project: Camel
>          Issue Type: Improvement
>          Components: camel-core
>            Reporter: Luca Burgazzoli
>            Assignee: Claus Ibsen
>            Priority: Major
>              Labels: kamelets
>             Fix For: 3.5.0
>
>
> We should have some option to hook a function when the routes definition is 
> created and/or instantiated something like:
> {code:java}
> context.addLifecycleStrategy(new LifecycleStrategySupport() {
>     public void onRouteTemplateDefinitionAdd(RouteTemplateDefinition 
> definition) {        
>         /* do some validation here */
>     }
> });
> {code}
> {code:java}
>  context.addRouteFromTemplate("myTemplate")
>     .routeId("myRouteId")
>     .parameter("a", "b")
>     .handler(definition -> /* do some validation here */)
>     .build()
> {code}
> That would help to add some validation in context such as camel-k when the 
> route templates have some limitations. 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to