This is an automated email from the ASF dual-hosted git repository. davsclaus pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/camel.git
commit 215659a91edeb1ae6a9d51ddc6c5c5626ae849e6 Author: Claus Ibsen <claus.ib...@gmail.com> AuthorDate: Thu Nov 24 11:06:11 2022 +0100 CAMEL-18733: camel-core - Move the discovery of route policy to when being added to the route, as previously if a route policy was added such as from a component that are in use in the route, then that would be too late. --- .../org/apache/camel/reifier/RouteReifier.java | 51 +++++++++++----------- 1 file changed, 25 insertions(+), 26 deletions(-) diff --git a/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/RouteReifier.java b/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/RouteReifier.java index 2302fca53c6..e8239ebf32f 100644 --- a/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/RouteReifier.java +++ b/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/RouteReifier.java @@ -164,32 +164,6 @@ public class RouteReifier extends ProcessorReifier<RouteDefinition> { } } - // configure route policy - if (definition.getRoutePolicies() != null && !definition.getRoutePolicies().isEmpty()) { - for (RoutePolicy policy : definition.getRoutePolicies()) { - LOG.debug("RoutePolicy is enabled: {} on route: {}", policy, definition.getId()); - route.getRoutePolicyList().add(policy); - } - } - if (definition.getRoutePolicyRef() != null) { - StringTokenizer policyTokens = new StringTokenizer(definition.getRoutePolicyRef(), ","); - while (policyTokens.hasMoreTokens()) { - String ref = policyTokens.nextToken().trim(); - RoutePolicy policy = mandatoryLookup(ref, RoutePolicy.class); - LOG.debug("RoutePolicy is enabled: {} on route: {}", policy, definition.getId()); - route.getRoutePolicyList().add(policy); - } - } - if (camelContext.getRoutePolicyFactories() != null) { - for (RoutePolicyFactory factory : camelContext.getRoutePolicyFactories()) { - RoutePolicy policy = factory.createRoutePolicy(camelContext, definition.getId(), definition); - if (policy != null) { - LOG.debug("RoutePolicy is enabled: {} on route: {}", policy, definition.getId()); - route.getRoutePolicyList().add(policy); - } - } - } - // configure auto startup Boolean isAutoStartup = parseBoolean(definition.getAutoStartup()); @@ -260,6 +234,31 @@ public class RouteReifier extends ProcessorReifier<RouteDefinition> { InternalProcessor internal = camelContext.adapt(ExtendedCamelContext.class).getInternalProcessorFactory() .addUnitOfWorkProcessorAdvice(camelContext, target, route); + // configure route policy + if (definition.getRoutePolicies() != null && !definition.getRoutePolicies().isEmpty()) { + for (RoutePolicy policy : definition.getRoutePolicies()) { + LOG.debug("RoutePolicy is enabled: {} on route: {}", policy, definition.getId()); + route.getRoutePolicyList().add(policy); + } + } + if (definition.getRoutePolicyRef() != null) { + StringTokenizer policyTokens = new StringTokenizer(definition.getRoutePolicyRef(), ","); + while (policyTokens.hasMoreTokens()) { + String ref = policyTokens.nextToken().trim(); + RoutePolicy policy = mandatoryLookup(ref, RoutePolicy.class); + LOG.debug("RoutePolicy is enabled: {} on route: {}", policy, definition.getId()); + route.getRoutePolicyList().add(policy); + } + } + if (camelContext.getRoutePolicyFactories() != null) { + for (RoutePolicyFactory factory : camelContext.getRoutePolicyFactories()) { + RoutePolicy policy = factory.createRoutePolicy(camelContext, definition.getId(), definition); + if (policy != null) { + LOG.debug("RoutePolicy is enabled: {} on route: {}", policy, definition.getId()); + route.getRoutePolicyList().add(policy); + } + } + } // and then optionally add route policy processor if a custom policy is set List<RoutePolicy> routePolicyList = route.getRoutePolicyList(); if (routePolicyList != null && !routePolicyList.isEmpty()) {