You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2020/11/07 11:11:21 UTC
[camel] 02/02: CAMEL-15823: camel-core - Optimize to use shared
exchange formatter for error handler when they use out of the box settings.
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 <cl...@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;