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
commit 036773e65dc9456c5f508767e8c0b669d205ba7f Author: Claus Ibsen <claus.ib...@gmail.com> AuthorDate: Sat Nov 7 12:09:45 2020 +0100 CAMEL-15823: camel-core - Optimize to use shared exchange formatter for error handler when they use out of the box settings. --- .../camel/processor/errorhandler/ErrorHandlerSupport.java | 9 +++++++++ .../camel/processor/errorhandler/RedeliveryErrorHandler.java | 11 ++--------- .../camel/reifier/errorhandler/DeadLetterChannelReifier.java | 6 ++++-- .../reifier/errorhandler/DefaultErrorHandlerReifier.java | 2 +- 4 files changed, 16 insertions(+), 12 deletions(-) diff --git a/core/camel-core-processor/src/main/java/org/apache/camel/processor/errorhandler/ErrorHandlerSupport.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/errorhandler/ErrorHandlerSupport.java index ba7447b..ee50e39 100644 --- a/core/camel-core-processor/src/main/java/org/apache/camel/processor/errorhandler/ErrorHandlerSupport.java +++ b/core/camel-core-processor/src/main/java/org/apache/camel/processor/errorhandler/ErrorHandlerSupport.java @@ -24,6 +24,7 @@ import org.apache.camel.Processor; import org.apache.camel.spi.CamelLogger; import org.apache.camel.spi.ErrorHandler; import org.apache.camel.support.ChildServiceSupport; +import org.apache.camel.support.processor.DefaultExchangeFormatter; /** * Support class for {@link ErrorHandler} implementations. @@ -35,6 +36,14 @@ public abstract class ErrorHandlerSupport extends ChildServiceSupport implements protected ExceptionPolicyStrategy exceptionPolicy = DefaultExceptionPolicyStrategy.INSTANCE; // optimize to use a shared instance public static final CamelLogger DEFAULT_CAMEL_LOGGER = new CamelLogger(); + // optimize to use a shared instance + public static final DefaultExchangeFormatter DEFAULT_EXCHANGE_FORMATTER = new DefaultExchangeFormatter(); + static { + DEFAULT_EXCHANGE_FORMATTER.setShowExchangeId(true); + DEFAULT_EXCHANGE_FORMATTER.setMultiline(true); + DEFAULT_EXCHANGE_FORMATTER.setShowHeaders(true); + DEFAULT_EXCHANGE_FORMATTER.setStyle(DefaultExchangeFormatter.OutputStyle.Fixed); + } public void addErrorHandler(Processor errorHandler) { addChildService(errorHandler); diff --git a/core/camel-core-processor/src/main/java/org/apache/camel/processor/errorhandler/RedeliveryErrorHandler.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/errorhandler/RedeliveryErrorHandler.java index 15869e4..e8619bf 100644 --- a/core/camel-core-processor/src/main/java/org/apache/camel/processor/errorhandler/RedeliveryErrorHandler.java +++ b/core/camel-core-processor/src/main/java/org/apache/camel/processor/errorhandler/RedeliveryErrorHandler.java @@ -51,7 +51,6 @@ import org.apache.camel.support.CamelContextHelper; import org.apache.camel.support.EventHelper; import org.apache.camel.support.ExchangeHelper; import org.apache.camel.support.MessageHelper; -import org.apache.camel.support.processor.DefaultExchangeFormatter; import org.apache.camel.support.service.ServiceHelper; import org.apache.camel.util.ObjectHelper; import org.apache.camel.util.StopWatch; @@ -137,22 +136,16 @@ public abstract class RedeliveryErrorHandler extends ErrorHandlerSupport } } else { this.customExchangeFormatter = false; - // setup exchange formatter to be used for message history dump - DefaultExchangeFormatter formatter = new DefaultExchangeFormatter(); - formatter.setShowExchangeId(true); - formatter.setMultiline(true); - formatter.setShowHeaders(true); - formatter.setStyle(DefaultExchangeFormatter.OutputStyle.Fixed); + this.exchangeFormatter = DEFAULT_EXCHANGE_FORMATTER; try { Integer maxChars = CamelContextHelper.parseInteger(camelContext, camelContext.getGlobalOption(Exchange.LOG_DEBUG_BODY_MAX_CHARS)); if (maxChars != null) { - formatter.setMaxChars(maxChars); + DEFAULT_EXCHANGE_FORMATTER.setMaxChars(maxChars); } } catch (Exception e) { throw RuntimeCamelException.wrapRuntimeCamelException(e); } - this.exchangeFormatter = formatter; } } diff --git a/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/errorhandler/DeadLetterChannelReifier.java b/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/errorhandler/DeadLetterChannelReifier.java index 16ef459..81a2003 100644 --- a/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/errorhandler/DeadLetterChannelReifier.java +++ b/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/errorhandler/DeadLetterChannelReifier.java @@ -24,6 +24,7 @@ import org.apache.camel.Route; import org.apache.camel.model.errorhandler.DeadLetterChannelConfiguration; import org.apache.camel.processor.errorhandler.DeadLetterChannel; import org.apache.camel.processor.errorhandler.RedeliveryPolicy; +import org.apache.camel.spi.CamelLogger; import org.apache.camel.util.StringHelper; public class DeadLetterChannelReifier extends DefaultErrorHandlerReifier<DeadLetterChannelConfiguration> { @@ -36,12 +37,13 @@ public class DeadLetterChannelReifier extends DefaultErrorHandlerReifier<DeadLet public Processor createErrorHandler(Processor processor) throws Exception { validateDeadLetterUri(); - // use either default redelivery policy or explicit configured policy + // optimize to use shared default instance if using out of the box settings RedeliveryPolicy redeliveryPolicy = definition.hasRedeliveryPolicy() ? definition.getRedeliveryPolicy() : definition.getDefaultRedeliveryPolicy(); + CamelLogger logger = definition.hasLogger() ? definition.getLogger() : null; DeadLetterChannel answer = new DeadLetterChannel( - camelContext, processor, definition.getLogger(), + camelContext, processor, logger, getBean(Processor.class, definition.getOnRedelivery(), definition.getOnRedeliveryRef()), redeliveryPolicy, definition.getExceptionPolicyStrategy(), getBean(Processor.class, definition.getFailureProcessor(), definition.getFailureProcessorRef()), diff --git a/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/errorhandler/DefaultErrorHandlerReifier.java b/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/errorhandler/DefaultErrorHandlerReifier.java index fd13371..86234fa 100644 --- a/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/errorhandler/DefaultErrorHandlerReifier.java +++ b/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/errorhandler/DefaultErrorHandlerReifier.java @@ -37,7 +37,7 @@ public class DefaultErrorHandlerReifier<T extends DefaultErrorHandlerConfigurati @Override public Processor createErrorHandler(Processor processor) throws Exception { - // use either default redelivery policy or explicit configured policy + // optimize to use shared default instance if using out of the box settings RedeliveryPolicy redeliveryPolicy = definition.hasRedeliveryPolicy() ? definition.getRedeliveryPolicy() : definition.getDefaultRedeliveryPolicy(); CamelLogger logger = definition.hasLogger() ? definition.getLogger() : null;