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;

Reply via email to