You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by or...@apache.org on 2023/06/13 11:46:16 UTC
[camel] 04/07: (chores) camel-core-languages: cleanup duplicated code handling the exchange formatter
This is an automated email from the ASF dual-hosted git repository.
orpiske pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git
commit e458905204a41013460ce76b7ce2a6f232cd41f8
Author: Otavio Rodolfo Piske <an...@gmail.com>
AuthorDate: Tue Jun 13 09:32:21 2023 +0200
(chores) camel-core-languages: cleanup duplicated code handling the exchange formatter
---
.../camel/language/csimple/CSimpleHelper.java | 25 +--------------
.../language/simple/SimpleExpressionBuilder.java | 26 ++-------------
.../org/apache/camel/support/LanguageHelper.java | 37 ++++++++++++++++++++++
3 files changed, 40 insertions(+), 48 deletions(-)
diff --git a/core/camel-core-languages/src/main/java/org/apache/camel/language/csimple/CSimpleHelper.java b/core/camel-core-languages/src/main/java/org/apache/camel/language/csimple/CSimpleHelper.java
index 7f71ced1498..d80e3336a8f 100644
--- a/core/camel-core-languages/src/main/java/org/apache/camel/language/csimple/CSimpleHelper.java
+++ b/core/camel-core-languages/src/main/java/org/apache/camel/language/csimple/CSimpleHelper.java
@@ -40,12 +40,10 @@ import org.apache.camel.RuntimeCamelException;
import org.apache.camel.spi.ExchangeFormatter;
import org.apache.camel.spi.Language;
import org.apache.camel.spi.PropertiesComponent;
-import org.apache.camel.support.CamelContextHelper;
import org.apache.camel.support.ExchangeHelper;
import org.apache.camel.support.GroupIterator;
import org.apache.camel.support.LanguageHelper;
import org.apache.camel.support.MessageHelper;
-import org.apache.camel.support.processor.DefaultExchangeFormatter;
import org.apache.camel.util.FileUtil;
import org.apache.camel.util.InetAddressUtil;
import org.apache.camel.util.ObjectHelper;
@@ -478,28 +476,7 @@ public final class CSimpleHelper {
}
private static ExchangeFormatter getOrCreateExchangeFormatter(CamelContext camelContext) {
- if (exchangeFormatter == null) {
- exchangeFormatter = camelContext.getRegistry().findSingleByType(ExchangeFormatter.class);
- if (exchangeFormatter == null) {
- // setup exchange formatter to be used for message history dump
- DefaultExchangeFormatter def = new DefaultExchangeFormatter();
- def.setShowExchangeId(true);
- def.setMultiline(true);
- def.setShowHeaders(true);
- def.setStyle(DefaultExchangeFormatter.OutputStyle.Fixed);
- try {
- Integer maxChars = CamelContextHelper.parseInteger(camelContext,
- camelContext.getGlobalOption(Exchange.LOG_DEBUG_BODY_MAX_CHARS));
- if (maxChars != null) {
- def.setMaxChars(maxChars);
- }
- } catch (Exception e) {
- throw RuntimeCamelException.wrapRuntimeCamelException(e);
- }
- exchangeFormatter = def;
- }
- }
- return exchangeFormatter;
+ return LanguageHelper.getOrCreateExchangeFormatter(camelContext, exchangeFormatter);
}
public static boolean isEqualTo(Exchange exchange, Object leftValue, Object rightValue) {
diff --git a/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/SimpleExpressionBuilder.java b/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/SimpleExpressionBuilder.java
index a89121eb416..9a915925280 100644
--- a/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/SimpleExpressionBuilder.java
+++ b/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/SimpleExpressionBuilder.java
@@ -34,7 +34,6 @@ import org.apache.camel.Exchange;
import org.apache.camel.ExchangePropertyKey;
import org.apache.camel.Expression;
import org.apache.camel.InvalidPayloadException;
-import org.apache.camel.RuntimeCamelException;
import org.apache.camel.spi.ClassResolver;
import org.apache.camel.spi.ExchangeFormatter;
import org.apache.camel.spi.Language;
@@ -43,11 +42,11 @@ import org.apache.camel.support.CamelContextHelper;
import org.apache.camel.support.ClassicUuidGenerator;
import org.apache.camel.support.DefaultUuidGenerator;
import org.apache.camel.support.ExpressionAdapter;
+import org.apache.camel.support.LanguageHelper;
import org.apache.camel.support.MessageHelper;
import org.apache.camel.support.ShortUuidGenerator;
import org.apache.camel.support.SimpleUuidGenerator;
import org.apache.camel.support.builder.ExpressionBuilder;
-import org.apache.camel.support.processor.DefaultExchangeFormatter;
import org.apache.camel.util.FileUtil;
import org.apache.camel.util.ObjectHelper;
import org.apache.camel.util.OgnlHelper;
@@ -102,28 +101,7 @@ public final class SimpleExpressionBuilder {
}
private ExchangeFormatter getOrCreateExchangeFormatter(CamelContext camelContext) {
- if (formatter == null) {
- formatter = camelContext.getRegistry().findSingleByType(ExchangeFormatter.class);
- if (formatter == null) {
- // setup exchange formatter to be used for message history dump
- DefaultExchangeFormatter def = new DefaultExchangeFormatter();
- def.setShowExchangeId(true);
- def.setMultiline(true);
- def.setShowHeaders(true);
- def.setStyle(DefaultExchangeFormatter.OutputStyle.Fixed);
- try {
- Integer maxChars = CamelContextHelper.parseInteger(camelContext,
- camelContext.getGlobalOption(Exchange.LOG_DEBUG_BODY_MAX_CHARS));
- if (maxChars != null) {
- def.setMaxChars(maxChars);
- }
- } catch (Exception e) {
- throw RuntimeCamelException.wrapRuntimeCamelException(e);
- }
- formatter = def;
- }
- }
- return formatter;
+ return LanguageHelper.getOrCreateExchangeFormatter(camelContext, formatter);
}
@Override
diff --git a/core/camel-support/src/main/java/org/apache/camel/support/LanguageHelper.java b/core/camel-support/src/main/java/org/apache/camel/support/LanguageHelper.java
index ae81fe687da..3334d524754 100644
--- a/core/camel-support/src/main/java/org/apache/camel/support/LanguageHelper.java
+++ b/core/camel-support/src/main/java/org/apache/camel/support/LanguageHelper.java
@@ -20,8 +20,12 @@ package org.apache.camel.support;
import java.io.PrintWriter;
import java.io.StringWriter;
+import org.apache.camel.CamelContext;
import org.apache.camel.Exchange;
import org.apache.camel.ExchangePropertyKey;
+import org.apache.camel.RuntimeCamelException;
+import org.apache.camel.spi.ExchangeFormatter;
+import org.apache.camel.support.processor.DefaultExchangeFormatter;
import org.apache.camel.util.IOHelper;
public final class LanguageHelper {
@@ -126,4 +130,37 @@ public final class LanguageHelper {
return false;
}
}
+
+ /**
+ * Gets the exchange formatter or creates one if unset
+ *
+ * @param camelContext the Camel context
+ * @param exchangeFormatter the exchange formatter
+ * @return the exchange formatter or the newly created one if previously unset
+ */
+ public static ExchangeFormatter getOrCreateExchangeFormatter(
+ CamelContext camelContext, ExchangeFormatter exchangeFormatter) {
+ if (exchangeFormatter == null) {
+ exchangeFormatter = camelContext.getRegistry().findSingleByType(ExchangeFormatter.class);
+ if (exchangeFormatter == null) {
+ // setup exchange formatter to be used for message history dump
+ DefaultExchangeFormatter def = new DefaultExchangeFormatter();
+ def.setShowExchangeId(true);
+ def.setMultiline(true);
+ def.setShowHeaders(true);
+ def.setStyle(DefaultExchangeFormatter.OutputStyle.Fixed);
+ try {
+ Integer maxChars = CamelContextHelper.parseInteger(camelContext,
+ camelContext.getGlobalOption(Exchange.LOG_DEBUG_BODY_MAX_CHARS));
+ if (maxChars != null) {
+ def.setMaxChars(maxChars);
+ }
+ } catch (Exception e) {
+ throw RuntimeCamelException.wrapRuntimeCamelException(e);
+ }
+ exchangeFormatter = def;
+ }
+ }
+ return exchangeFormatter;
+ }
}