[
https://issues.apache.org/jira/browse/CAMEL-18683?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Claus Ibsen resolved CAMEL-18683.
---------------------------------
Fix Version/s: 3.20.0
(was: 4.0)
(was: 3.21.0)
Resolution: Fixed
> Priorize RouteTemplate initialization
> -------------------------------------
>
> Key: CAMEL-18683
> URL: https://issues.apache.org/jira/browse/CAMEL-18683
> Project: Camel
> Issue Type: Improvement
> Components: camel-main
> Reporter: Michael Rambichler
> Priority: Minor
> Fix For: 3.20.0
>
>
> We often struggle the issue of the correct Route naming order dependency:
>
> *Improvement:* Priorize RouteBuilder with RouteTemplates
> *Testcase:*
> Name your RouteTemplate: ZTemplate
> and another Routebuilder which will use the defined Template in ZTemplate.
> The Routebuilder will fail because the ZTemplate Route was not yet added to
> the routescollections.
> *Suggestion:* Use a dedicated class e.g. RouteTemplateBuilder to prioritize
> Routebuilder with templates
> See: RoutesConfigure.java
> private void addDiscoveredRoutes(CamelContext camelContext,
> List<RoutesBuilder> routes) throws Exception {
> // sort routes according to ordered
> routes.sort(OrderedComparator.get());
> // first add the routes configurations as they are globally for all routes
> for (RoutesBuilder builder : routes) {
> if (builder instanceof RouteConfigurationsBuilder) {
> RouteConfigurationsBuilder rcb = (RouteConfigurationsBuilder)
> builder;
> LOG.debug("Adding routes configurations into CamelContext from
> RouteConfigurationsBuilder: {}", rcb);
> camelContext.addRoutesConfigurations(rcb);
> }
> }
> {color:#0000ff} // first add the all route templates as they are globally for
> all routes
> for (RoutesBuilder builder : routes) {
> if (builder instanceof RouteTemplateBuilder) {
> LOG.debug("Adding route tempaltes into CamelContext from RoutesBuilder:
> {}", builder);
> camelContext.addRoutes(builder);
> }
> }{color}
> // then add the routes
> for (RoutesBuilder builder : routes) {
> LOG.debug("Adding routes into CamelContext from RoutesBuilder: {}",
> builder);
> camelContext.addRoutes(builder);
> }
> }
> }
--
This message was sent by Atlassian Jira
(v8.20.10#820010)