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 cf74942da43d008aea33943b1fc7253cc1f4e6ac Author: Claus Ibsen <[email protected]> AuthorDate: Wed Aug 4 11:20:13 2021 +0200 CAMEL-16757: Polished logging --- .../src/main/java/org/apache/camel/Route.java | 2 +- .../org/apache/camel/model/RouteDefinition.java | 29 +++++++++++++++++++--- .../org/apache/camel/model/RoutesDefinition.java | 12 ++++----- .../org/apache/camel/reifier/RouteReifier.java | 5 ++-- .../core/xml/AbstractCamelContextFactoryBean.java | 11 ++++---- 5 files changed, 40 insertions(+), 19 deletions(-) diff --git a/core/camel-api/src/main/java/org/apache/camel/Route.java b/core/camel-api/src/main/java/org/apache/camel/Route.java index 27e5e84..5c0dddf 100644 --- a/core/camel-api/src/main/java/org/apache/camel/Route.java +++ b/core/camel-api/src/main/java/org/apache/camel/Route.java @@ -117,7 +117,7 @@ public interface Route extends RuntimeConfiguration { String getDescription(); /** - * Gets the route configuration id(s) (if any has been configured). + * Gets the route configuration id(s) the route has been applied with. Multiple ids is separated by comma. * <p/> * The configuration ids is configured using the {@link #CONFIGURATION_ID_PROPERTY} as key in the * {@link #getProperties()}. diff --git a/core/camel-core-model/src/main/java/org/apache/camel/model/RouteDefinition.java b/core/camel-core-model/src/main/java/org/apache/camel/model/RouteDefinition.java index 40ef2e1..6373a26 100644 --- a/core/camel-core-model/src/main/java/org/apache/camel/model/RouteDefinition.java +++ b/core/camel-core-model/src/main/java/org/apache/camel/model/RouteDefinition.java @@ -18,8 +18,10 @@ package org.apache.camel.model; import java.util.ArrayList; import java.util.Arrays; +import java.util.LinkedHashSet; import java.util.List; import java.util.Map; +import java.util.Set; import java.util.concurrent.atomic.AtomicBoolean; import java.util.function.Supplier; @@ -58,6 +60,7 @@ public class RouteDefinition extends OutputDefinition<RouteDefinition> implement private final AtomicBoolean prepared = new AtomicBoolean(); private FromDefinition input; private String routeConfigurationId; + private transient Set<String> appliedRouteConfigurationIds; private String group; private String streamCache; private String trace; @@ -130,9 +133,6 @@ public class RouteDefinition extends OutputDefinition<RouteDefinition> implement /** * Marks the route definition as un-prepared. - * <p/> - * This is needed if routes have been created by components such as <tt>camel-scala</tt>. To unset the prepare so - * the routes can be prepared at a later stage when scala has build the routes completely. */ public void markUnprepared() { prepared.set(false); @@ -748,6 +748,29 @@ public class RouteDefinition extends OutputDefinition<RouteDefinition> implement } /** + * This is used internally by Camel to keep track which route configurations is applied when creating a route from + * this model. + * + * This method is not intended for Camel end users. + */ + public void addAppliedRouteConfigurationId(String routeConfigurationId) { + if (appliedRouteConfigurationIds == null) { + appliedRouteConfigurationIds = new LinkedHashSet<>(); + } + appliedRouteConfigurationIds.add(routeConfigurationId); + } + + /** + * This is used internally by Camel to keep track which route configurations is applied when creating a route from + * this model. + * + * This method is not intended for Camel end users. + */ + public Set<String> getAppliedRouteConfigurationIds() { + return appliedRouteConfigurationIds; + } + + /** * The group that this route belongs to; could be the name of the RouteBuilder class or be explicitly configured in * the XML. * <p/> diff --git a/core/camel-core-model/src/main/java/org/apache/camel/model/RoutesDefinition.java b/core/camel-core-model/src/main/java/org/apache/camel/model/RoutesDefinition.java index 3a2ff21..f764bc6 100644 --- a/core/camel-core-model/src/main/java/org/apache/camel/model/RoutesDefinition.java +++ b/core/camel-core-model/src/main/java/org/apache/camel/model/RoutesDefinition.java @@ -17,9 +17,7 @@ package org.apache.camel.model; import java.util.ArrayList; -import java.util.LinkedHashSet; import java.util.List; -import java.util.Set; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; @@ -226,7 +224,6 @@ public class RoutesDefinition extends OptionalIdentifiedDefinition<RoutesDefinit List<InterceptFromDefinition> ifrom = new ArrayList<>(interceptFroms); List<InterceptSendToEndpointDefinition> ito = new ArrayList<>(interceptSendTos); List<OnCompletionDefinition> oc = new ArrayList<>(onCompletions); - Set<String> matchedIds = new LinkedHashSet<>(); if (getCamelContext() != null) { List<RouteConfigurationDefinition> globalConfigurations = getCamelContext().adapt(ModelCamelContext.class).getRouteConfigurationDefinitions(); @@ -238,8 +235,8 @@ public class RoutesDefinition extends OptionalIdentifiedDefinition<RoutesDefinit || (PatternHelper.matchPattern(g.getId(), route.getRouteConfigurationId()))) .forEach(g -> { if (g.getId() != null && !g.getId().equals("*")) { - // remember the id that was used - matchedIds.add(g.getId()); + // remember the id that was used on the route + route.addAppliedRouteConfigurationId(g.getId()); } oe.addAll(g.getOnExceptions()); icp.addAll(g.getIntercepts()); @@ -253,8 +250,9 @@ public class RoutesDefinition extends OptionalIdentifiedDefinition<RoutesDefinit // must prepare the route before we can add it to the routes list RouteDefinitionHelper.prepareRoute(getCamelContext(), route, oe, icp, ifrom, ito, oc); - if (LOG.isDebugEnabled() && route.getRouteConfigurationId() != null) { - LOG.debug("Route: {} is using route configurations ids: {}", route.getId(), matchedIds); + if (LOG.isDebugEnabled() && route.getAppliedRouteConfigurationIds() != null) { + LOG.debug("Route: {} is using route configurations ids: {}", route.getId(), + route.getAppliedRouteConfigurationIds()); } // mark this route as prepared 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 f921817..d55b699 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 @@ -373,8 +373,9 @@ public class RouteReifier extends ProcessorReifier<RouteDefinition> { routeProperties.put(Route.REST_PROPERTY, rest); String template = Boolean.toString(definition.isTemplate() != null && definition.isTemplate()); routeProperties.put(Route.TEMPLATE_PROPERTY, template); - if (definition.getRouteConfigurationId() != null) { - routeProperties.put(Route.CONFIGURATION_ID_PROPERTY, definition.getRouteConfigurationId()); + if (definition.getAppliedRouteConfigurationIds() != null) { + routeProperties.put(Route.CONFIGURATION_ID_PROPERTY, + String.join(",", definition.getAppliedRouteConfigurationIds())); } List<PropertyDefinition> properties = definition.getRouteProperties(); diff --git a/core/camel-core-xml/src/main/java/org/apache/camel/core/xml/AbstractCamelContextFactoryBean.java b/core/camel-core-xml/src/main/java/org/apache/camel/core/xml/AbstractCamelContextFactoryBean.java index 91731bc..7516f2a 100644 --- a/core/camel-core-xml/src/main/java/org/apache/camel/core/xml/AbstractCamelContextFactoryBean.java +++ b/core/camel-core-xml/src/main/java/org/apache/camel/core/xml/AbstractCamelContextFactoryBean.java @@ -19,7 +19,6 @@ package org.apache.camel.core.xml; import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; -import java.util.LinkedHashSet; import java.util.List; import java.util.Map; import java.util.Map.Entry; @@ -559,7 +558,6 @@ public abstract class AbstractCamelContextFactoryBean<T extends ModelCamelContex List<InterceptFromDefinition> ifrom = new ArrayList<>(getInterceptFroms()); List<InterceptSendToEndpointDefinition> ito = new ArrayList<>(getInterceptSendToEndpoints()); List<OnCompletionDefinition> oc = new ArrayList<>(getOnCompletions()); - Set<String> matchedIds = new LinkedHashSet<>(); if (getContext() != null) { List<RouteConfigurationDefinition> globalConfigurations = getContext().adapt(ModelCamelContext.class).getRouteConfigurationDefinitions(); @@ -571,8 +569,8 @@ public abstract class AbstractCamelContextFactoryBean<T extends ModelCamelContex || (PatternHelper.matchPattern(g.getId(), route.getRouteConfigurationId()))) .forEach(g -> { if (g.getId() != null && !g.getId().equals("*")) { - // remember the id that was used - matchedIds.add(g.getId()); + // remember the id that was used on the route + route.addAppliedRouteConfigurationId(g.getId()); } oe.addAll(g.getOnExceptions()); icp.addAll(g.getIntercepts()); @@ -586,8 +584,9 @@ public abstract class AbstractCamelContextFactoryBean<T extends ModelCamelContex // must prepare the route before we can add it to the routes list RouteDefinitionHelper.prepareRoute(getContext(), route, oe, icp, ifrom, ito, oc); - if (LOG.isDebugEnabled() && route.getRouteConfigurationId() != null) { - LOG.debug("Route: {} is using route configurations ids: {}", route.getId(), matchedIds); + if (LOG.isDebugEnabled() && route.getAppliedRouteConfigurationIds() != null) { + LOG.debug("Route: {} is using route configurations ids: {}", route.getId(), + route.getAppliedRouteConfigurationIds()); } // mark the route as prepared now
