This is an automated email from the ASF dual-hosted git repository.

davsclaus pushed a commit to branch camel-3.20.x
in repository https://gitbox.apache.org/repos/asf/camel.git

commit 104cf42bba1d4bc325b0aaa7a9af031ea7603daa
Author: Claus Ibsen <claus.ib...@gmail.com>
AuthorDate: Wed Dec 28 11:14:06 2022 +0100

    CAMEL-18845: camel-core - Performance overhead for async processing event 
emitting that is not needed usually
---
 .../src/main/java/org/apache/camel/tracing/Tracer.java           | 9 +++++++++
 .../src/main/java/org/apache/camel/spi/EventNotifier.java        | 7 ++-----
 .../org/apache/camel/impl/engine/CamelInternalProcessor.java     | 2 +-
 .../src/main/java/org/apache/camel/processor/SendProcessor.java  | 2 +-
 .../org/apache/camel/support/SimpleEventNotifierSupport.java     | 2 +-
 5 files changed, 14 insertions(+), 8 deletions(-)

diff --git 
a/components/camel-tracing/src/main/java/org/apache/camel/tracing/Tracer.java 
b/components/camel-tracing/src/main/java/org/apache/camel/tracing/Tracer.java
index c7ef133c491..71eab56c8d8 100644
--- 
a/components/camel-tracing/src/main/java/org/apache/camel/tracing/Tracer.java
+++ 
b/components/camel-tracing/src/main/java/org/apache/camel/tracing/Tracer.java
@@ -232,6 +232,15 @@ public abstract class Tracer extends ServiceSupport 
implements RoutePolicyFactor
 
     private final class TracingEventNotifier extends EventNotifierSupport {
 
+        public TracingEventNotifier() {
+            // ignore these
+            setIgnoreCamelContextEvents(true);
+            setIgnoreCamelContextInitEvents(true);
+            setIgnoreRouteEvents(true);
+            // we need also async processing started events
+            setIgnoreExchangeAsyncProcessingStartedEvents(false);
+        }
+
         @Override
         public void notify(CamelEvent event) throws Exception {
             try {
diff --git 
a/core/camel-api/src/main/java/org/apache/camel/spi/EventNotifier.java 
b/core/camel-api/src/main/java/org/apache/camel/spi/EventNotifier.java
index 9d1f8a688ec..08527e2b503 100644
--- a/core/camel-api/src/main/java/org/apache/camel/spi/EventNotifier.java
+++ b/core/camel-api/src/main/java/org/apache/camel/spi/EventNotifier.java
@@ -96,10 +96,7 @@ public interface EventNotifier {
 
     void setIgnoreStepEvents(boolean ignoreStepEvents);
 
-    default void setIgnoreExchangeAsyncProcessingStartedEvents(boolean 
ignoreExchangeAsyncProcessingStartedEvents) {
-    }
+    void setIgnoreExchangeAsyncProcessingStartedEvents(boolean 
ignoreExchangeAsyncProcessingStartedEvents);
 
-    default boolean isIgnoreExchangeAsyncProcessingStartedEvents() {
-        return false;
-    }
+    boolean isIgnoreExchangeAsyncProcessingStartedEvents();
 }
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 d16d1fab5d4..e05b6ab8d22 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
@@ -391,7 +391,7 @@ public class CamelInternalProcessor extends 
DelegateAsyncProcessor implements In
             }
             boolean sync = processor.process(exchange, async);
             if (!sync) {
-                
EventHelper.notifyExchangeAsyncProcessingStartedEvent(exchange.getContext(), 
exchange);
+                
EventHelper.notifyExchangeAsyncProcessingStartedEvent(camelContext, exchange);
             }
 
             // ----------------------------------------------------------
diff --git 
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/SendProcessor.java
 
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/SendProcessor.java
index f4138b74b30..6782c7f3170 100644
--- 
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/SendProcessor.java
+++ 
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/SendProcessor.java
@@ -171,7 +171,7 @@ public class SendProcessor extends AsyncProcessorSupport 
implements Traceable, E
                 LOG.debug(">>>> {} {}", destination, exchange);
                 boolean sync = producer.process(exchange, ac);
                 if (!sync) {
-                    
EventHelper.notifyExchangeAsyncProcessingStartedEvent(exchange.getContext(), 
exchange);
+                    
EventHelper.notifyExchangeAsyncProcessingStartedEvent(camelContext, exchange);
                 }
                 return sync;
             } catch (Throwable throwable) {
diff --git 
a/core/camel-support/src/main/java/org/apache/camel/support/SimpleEventNotifierSupport.java
 
b/core/camel-support/src/main/java/org/apache/camel/support/SimpleEventNotifierSupport.java
index 16a34d9d091..fa3c71f4be4 100644
--- 
a/core/camel-support/src/main/java/org/apache/camel/support/SimpleEventNotifierSupport.java
+++ 
b/core/camel-support/src/main/java/org/apache/camel/support/SimpleEventNotifierSupport.java
@@ -38,7 +38,7 @@ public abstract class SimpleEventNotifierSupport extends 
ServiceSupport implemen
     boolean ignoreExchangeEvents;
     boolean ignoreExchangeCreatedEvent;
     boolean ignoreExchangeCompletedEvent;
-    boolean ignoreExchangeAsyncProcessingStartedEvents;
+    boolean ignoreExchangeAsyncProcessingStartedEvents = true; // special need 
for camel-tracing/camel-opentelemtry
     boolean ignoreExchangeFailedEvents;
     boolean ignoreExchangeRedeliveryEvents;
     boolean ignoreExchangeSendingEvents;

Reply via email to