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


The following commit(s) were added to refs/heads/main by this push:
     new 44b7790ec5f CAMEL-20206: split overly complex method in 
CamelInternalProcessor (#12426)
44b7790ec5f is described below

commit 44b7790ec5f624632e87f7bd15647ca0dd309c96
Author: Otavio Rodolfo Piske <orpi...@users.noreply.github.com>
AuthorDate: Tue Dec 12 15:13:12 2023 -0300

    CAMEL-20206: split overly complex method in CamelInternalProcessor (#12426)
---
 .../camel/impl/engine/CamelInternalProcessor.java  | 56 ++++++++++++----------
 1 file changed, 30 insertions(+), 26 deletions(-)

diff --git 
a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/CamelInternalProcessor.java
 
b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/CamelInternalProcessor.java
index b98243a96b2..48c3b610da9 100644
--- 
a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/CamelInternalProcessor.java
+++ 
b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/CamelInternalProcessor.java
@@ -653,32 +653,7 @@ public class CamelInternalProcessor extends 
DelegateAsyncProcessor implements In
                             true, false, 
backlogTracer.incrementTraceCounter(), created, source, routeId, null, 
exchangeId,
                             rest, template, messageAsXml, messageAsJSon);
                     backlogTracer.traceEvent(pseudoFirst);
-                    exchange.getExchangeExtension().addOnCompletion(new 
SynchronizationAdapter() {
-                        @Override
-                        public void onDone(Exchange exchange) {
-                            // create pseudo last
-                            String routeId = routeDefinition != null ? 
routeDefinition.getRouteId() : null;
-                            String exchangeId = exchange.getExchangeId();
-                            boolean includeExchangeProperties = 
backlogTracer.isIncludeExchangeProperties();
-                            long created = exchange.getCreated();
-                            String messageAsXml = 
MessageHelper.dumpAsXml(exchange.getIn(), includeExchangeProperties, true, 4,
-                                    true, 
backlogTracer.isBodyIncludeStreams(), backlogTracer.isBodyIncludeFiles(),
-                                    backlogTracer.getBodyMaxChars());
-                            String messageAsJSon
-                                    = 
MessageHelper.dumpAsJSon(exchange.getIn(), includeExchangeProperties, true, 4,
-                                            true, 
backlogTracer.isBodyIncludeStreams(), backlogTracer.isBodyIncludeFiles(),
-                                            backlogTracer.getBodyMaxChars(), 
true);
-                            DefaultBacklogTracerEventMessage pseudoLast = new 
DefaultBacklogTracerEventMessage(
-                                    false, true, 
backlogTracer.incrementTraceCounter(), created, source, routeId, null,
-                                    exchangeId, rest, template, messageAsXml, 
messageAsJSon);
-                            backlogTracer.traceEvent(pseudoLast);
-                            doneProcessing(exchange, pseudoLast);
-                            doneProcessing(exchange, pseudoFirst);
-                            // to not be confused then lets store duration on 
first/last as (first = 0, last = total time to process)
-                            pseudoLast.setElapsed(pseudoFirst.getElapsed());
-                            pseudoFirst.setElapsed(0);
-                        }
-                    });
+                    
exchange.getExchangeExtension().addOnCompletion(createOnCompletion(source, 
pseudoFirst));
                 }
                 String source = 
LoggerHelper.getLineNumberLoggerName(processorDefinition);
                 DefaultBacklogTracerEventMessage event = new 
DefaultBacklogTracerEventMessage(
@@ -692,6 +667,35 @@ public class CamelInternalProcessor extends 
DelegateAsyncProcessor implements In
             return null;
         }
 
+        private SynchronizationAdapter createOnCompletion(String source, 
DefaultBacklogTracerEventMessage pseudoFirst) {
+            return new SynchronizationAdapter() {
+                @Override
+                public void onDone(Exchange exchange) {
+                    // create pseudo last
+                    String routeId = routeDefinition != null ? 
routeDefinition.getRouteId() : null;
+                    String exchangeId = exchange.getExchangeId();
+                    boolean includeExchangeProperties = 
backlogTracer.isIncludeExchangeProperties();
+                    long created = exchange.getCreated();
+                    String messageAsXml = 
MessageHelper.dumpAsXml(exchange.getIn(), includeExchangeProperties, true, 4,
+                            true, backlogTracer.isBodyIncludeStreams(), 
backlogTracer.isBodyIncludeFiles(),
+                            backlogTracer.getBodyMaxChars());
+                    String messageAsJSon
+                            = MessageHelper.dumpAsJSon(exchange.getIn(), 
includeExchangeProperties, true, 4,
+                                    true, 
backlogTracer.isBodyIncludeStreams(), backlogTracer.isBodyIncludeFiles(),
+                                    backlogTracer.getBodyMaxChars(), true);
+                    DefaultBacklogTracerEventMessage pseudoLast = new 
DefaultBacklogTracerEventMessage(
+                            false, true, 
backlogTracer.incrementTraceCounter(), created, source, routeId, null,
+                            exchangeId, rest, template, messageAsXml, 
messageAsJSon);
+                    backlogTracer.traceEvent(pseudoLast);
+                    doneProcessing(exchange, pseudoLast);
+                    doneProcessing(exchange, pseudoFirst);
+                    // to not be confused then lets store duration on 
first/last as (first = 0, last = total time to process)
+                    pseudoLast.setElapsed(pseudoFirst.getElapsed());
+                    pseudoFirst.setElapsed(0);
+                }
+            };
+        }
+
         @Override
         public void after(Exchange exchange, DefaultBacklogTracerEventMessage 
data) throws Exception {
             if (data != null) {

Reply via email to