Michael Rambichler created CAMEL-18683:
------------------------------------------

             Summary: Priorize RouteTemplate initialization
                 Key: CAMEL-18683
                 URL: https://issues.apache.org/jira/browse/CAMEL-18683
             Project: Camel
          Issue Type: Improvement
          Components: came-core
            Reporter: Michael Rambichler


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)

Reply via email to