This is an automated email from the ASF dual-hosted git repository. davsclaus pushed a commit to branch CAMEL-16757 in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/CAMEL-16757 by this push: new acabe97 CAMEL-16757: camel-core - Global error handling, interceptor in all DSL acabe97 is described below commit acabe97838fd22e4aa321f0037df1f0e92dff6c8 Author: Claus Ibsen <claus.ib...@gmail.com> AuthorDate: Thu Jul 8 15:00:20 2021 +0200 CAMEL-16757: camel-core - Global error handling, interceptor in all DSL --- .../org/apache/camel/main/RoutesConfigurer.java | 30 ++++++++++++++-------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/core/camel-main/src/main/java/org/apache/camel/main/RoutesConfigurer.java b/core/camel-main/src/main/java/org/apache/camel/main/RoutesConfigurer.java index bde6e02..1a543b1 100644 --- a/core/camel-main/src/main/java/org/apache/camel/main/RoutesConfigurer.java +++ b/core/camel-main/src/main/java/org/apache/camel/main/RoutesConfigurer.java @@ -144,7 +144,6 @@ public class RoutesConfigurer { // lets use Camel's injector so the class has some support for dependency injection RoutesBuilder builder = camelContext.getInjector().newInstance(routeClazz); - routes.add(builder); } } @@ -154,7 +153,6 @@ public class RoutesConfigurer { Set<Class<?>> set = camelContext.adapt(ExtendedCamelContext.class) .getPackageScanClassResolver() .findImplementations(RoutesBuilder.class, pkgs); - for (Class<?> routeClazz : set) { Object builder = camelContext.getInjector().newInstance(routeClazz); if (builder instanceof RoutesBuilder) { @@ -176,6 +174,11 @@ public class RoutesConfigurer { getJavaRoutesIncludePattern()); routes.addAll(routesFromRegistry); + if (LOG.isDebugEnabled() && !routesFromRegistry.isEmpty()) { + LOG.debug("Discovered {} additional RoutesBuilder from registry: {}", routesFromRegistry.size(), + getRoutesIncludePattern()); + } + // add discovered routes from directories StopWatch watch = new StopWatch(); Collection<RoutesBuilder> routesFromDirectory = getRoutesCollector().collectRoutesFromDirectory( @@ -184,8 +187,8 @@ public class RoutesConfigurer { getRoutesIncludePattern()); routes.addAll(routesFromDirectory); - if (!routesFromDirectory.isEmpty()) { - LOG.info("Loaded {} additional RoutesBuilder from: {} (took {})", routesFromDirectory.size(), + if (LOG.isDebugEnabled() && !routesFromDirectory.isEmpty()) { + LOG.debug("Loaded {} additional RoutesBuilder from: {} (took {})", routesFromDirectory.size(), getRoutesIncludePattern(), TimeUtils.printDuration(watch.taken())); } } catch (Exception e) { @@ -196,13 +199,24 @@ public class RoutesConfigurer { if (getBeanPostProcessor() != null) { // lets use Camel's bean post processor on any existing route builder classes // so the instance has some support for dependency injection - for (RoutesBuilder routeBuilder : routes) { getBeanPostProcessor().postProcessBeforeInitialization(routeBuilder, routeBuilder.getClass().getName()); getBeanPostProcessor().postProcessAfterInitialization(routeBuilder, routeBuilder.getClass().getName()); } } + // add the discovered routes + addDiscoveredRoutes(camelContext, routes); + + // then discover and add templates + Set<ConfigureRouteTemplates> set = camelContext.getRegistry().findByType(ConfigureRouteTemplates.class); + for (ConfigureRouteTemplates crt : set) { + LOG.debug("Configuring route templates via: {}", crt); + crt.configure(camelContext); + } + } + + private void addDiscoveredRoutes(CamelContext camelContext, List<RoutesBuilder> routes) throws Exception { // sort routes according to ordered routes.sort(OrderedComparator.get()); @@ -219,11 +233,5 @@ public class RoutesConfigurer { LOG.debug("Adding routes into CamelContext from RoutesBuilder: {}", builder); camelContext.addRoutes(builder); } - - Set<ConfigureRouteTemplates> set = camelContext.getRegistry().findByType(ConfigureRouteTemplates.class); - for (ConfigureRouteTemplates crt : set) { - LOG.debug("Configuring route templates via: {}", crt); - crt.configure(camelContext); - } } }