This is an automated email from the ASF dual-hosted git repository. davsclaus pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/master by this push: new 7312e3c CAMEL-13036: Allow advice with to turn off logging routes before/after as XML 7312e3c is described below commit 7312e3cb035a07559b1cc16dafd6eb9cbc64fe26 Author: Claus Ibsen <claus.ib...@gmail.com> AuthorDate: Thu Aug 1 08:36:53 2019 +0200 CAMEL-13036: Allow advice with to turn off logging routes before/after as XML --- .../camel/builder/AdviceWithRouteBuilder.java | 25 ++++++++++++++++++++++ .../org/apache/camel/reifier/RouteReifier.java | 20 ++++++++++++----- 2 files changed, 40 insertions(+), 5 deletions(-) diff --git a/core/camel-core/src/main/java/org/apache/camel/builder/AdviceWithRouteBuilder.java b/core/camel-core/src/main/java/org/apache/camel/builder/AdviceWithRouteBuilder.java index e7163a6..d29061c 100644 --- a/core/camel-core/src/main/java/org/apache/camel/builder/AdviceWithRouteBuilder.java +++ b/core/camel-core/src/main/java/org/apache/camel/builder/AdviceWithRouteBuilder.java @@ -43,6 +43,7 @@ public abstract class AdviceWithRouteBuilder extends RouteBuilder { private RouteDefinition originalRoute; private final List<AdviceWithTask> adviceWithTasks = new ArrayList<>(); + private boolean logRouteAsXml = true; /** * Advices this route with the route builder using a lambda expression. @@ -121,6 +122,30 @@ public abstract class AdviceWithRouteBuilder extends RouteBuilder { } /** + * Whether to log the adviced routes before/after as XML. + * This is usable to know how the route was adviced and changed. + * However marshalling the route model to XML costs CPU resources + * and you can then turn this off by not logging. + * + * This is default enabled. + */ + public boolean isLogRouteAsXml() { + return logRouteAsXml; + } + + /** + * Sets whether to log the adviced routes before/after as XML. + * This is usable to know how the route was adviced and changed. + * However marshalling the route model to XML costs CPU resources + * and you can then turn this off by not logging. + * + * This is default enabled. + */ + public void setLogRouteAsXml(boolean logRouteAsXml) { + this.logRouteAsXml = logRouteAsXml; + } + + /** * Gets a list of additional tasks to execute after the {@link #configure()} method has been executed * during the advice process. * diff --git a/core/camel-core/src/main/java/org/apache/camel/reifier/RouteReifier.java b/core/camel-core/src/main/java/org/apache/camel/reifier/RouteReifier.java index ec490e3..f940531 100644 --- a/core/camel-core/src/main/java/org/apache/camel/reifier/RouteReifier.java +++ b/core/camel-core/src/main/java/org/apache/camel/reifier/RouteReifier.java @@ -139,8 +139,11 @@ public class RouteReifier extends ProcessorReifier<RouteDefinition> { // inject this route into the advice route builder so it can access this route // and offer features to manipulate the route directly + boolean logRoutesAsXml = true; if (builder instanceof AdviceWithRouteBuilder) { - ((AdviceWithRouteBuilder) builder).setOriginalRoute(definition); + AdviceWithRouteBuilder arb = (AdviceWithRouteBuilder) builder; + arb.setOriginalRoute(definition); + logRoutesAsXml = arb.isLogRouteAsXml(); } // configure and prepare the routes from the builder @@ -161,7 +164,10 @@ public class RouteReifier extends ProcessorReifier<RouteDefinition> { throw new IllegalArgumentException("You can not advice with error handlers. Remove the error handlers from the route builder."); } - String beforeAsXml = ModelHelper.dumpModelAsXml(camelContext, definition); + String beforeAsXml = null; + if (logRoutesAsXml && log.isInfoEnabled()) { + beforeAsXml = ModelHelper.dumpModelAsXml(camelContext, definition); + } // stop and remove this existing route camelContext.getExtension(Model.class).removeRouteDefinition(definition); @@ -181,10 +187,14 @@ public class RouteReifier extends ProcessorReifier<RouteDefinition> { camelContext.getExtension(Model.class).getRouteDefinitions().add(0, merged); // log the merged route at info level to make it easier to end users to spot any mistakes they may have made - log.info("AdviceWith route after: {}", merged); + if (log.isInfoEnabled()) { + log.info("AdviceWith route after: {}", merged); + } - String afterAsXml = ModelHelper.dumpModelAsXml(camelContext, merged); - log.info("Adviced route before/after as XML:\n{}\n{}", beforeAsXml, afterAsXml); + if (logRoutesAsXml && log.isInfoEnabled()) { + String afterAsXml = ModelHelper.dumpModelAsXml(camelContext, merged); + log.info("Adviced route before/after as XML:\n{}\n{}", beforeAsXml, afterAsXml); + } // If the camel context is started then we start the route if (camelContext.isStarted()) {