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) {