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;
+    }
 }