[
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)