You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Claus Ibsen (Jira)" <ji...@apache.org> on 2022/12/18 09:43:00 UTC
[jira] [Resolved] (CAMEL-18683) Priorize RouteTemplate initialization
[ 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)