This is an automated email from the ASF dual-hosted git repository. davsclaus 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 3b0fe617d14 CAMEL-20860: camel-core - Endpoint should have isRemote method 3b0fe617d14 is described below commit 3b0fe617d145bc3f0e19e1c40fcac305aa41a337 Author: Claus Ibsen <claus.ib...@gmail.com> AuthorDate: Wed Jun 12 09:27:36 2024 +0200 CAMEL-20860: camel-core - Endpoint should have isRemote method --- .../org/apache/camel/spi/BacklogTracerEventMessage.java | 9 +++++++++ .../impl/debugger/DefaultBacklogTracerEventMessage.java | 12 ++++++++++++ .../apache/camel/impl/engine/CamelInternalProcessor.java | 4 ++++ .../java/org/apache/camel/impl/engine/DefaultTracer.java | 13 ++++++------- 4 files changed, 31 insertions(+), 7 deletions(-) diff --git a/core/camel-api/src/main/java/org/apache/camel/spi/BacklogTracerEventMessage.java b/core/camel-api/src/main/java/org/apache/camel/spi/BacklogTracerEventMessage.java index bf2e88adee9..4966baca42d 100644 --- a/core/camel-api/src/main/java/org/apache/camel/spi/BacklogTracerEventMessage.java +++ b/core/camel-api/src/main/java/org/apache/camel/spi/BacklogTracerEventMessage.java @@ -18,6 +18,8 @@ package org.apache.camel.spi; import java.util.Map; +import org.apache.camel.Endpoint; + /** * Represents a traced message by the BacklogTracer. */ @@ -137,6 +139,13 @@ public interface BacklogTracerEventMessage { */ String getEndpointUri(); + /** + * Whether the endpoint is remote. + * + * @see Endpoint#isRemote() + */ + boolean isRemoteEndpoint(); + /** * Gets the endpoint remote address such as URL, hostname, connection-string, or cloud region, that are component * specific. diff --git a/core/camel-base-engine/src/main/java/org/apache/camel/impl/debugger/DefaultBacklogTracerEventMessage.java b/core/camel-base-engine/src/main/java/org/apache/camel/impl/debugger/DefaultBacklogTracerEventMessage.java index 5db7cc4a226..b57668d2a8b 100644 --- a/core/camel-base-engine/src/main/java/org/apache/camel/impl/debugger/DefaultBacklogTracerEventMessage.java +++ b/core/camel-base-engine/src/main/java/org/apache/camel/impl/debugger/DefaultBacklogTracerEventMessage.java @@ -41,6 +41,7 @@ public final class DefaultBacklogTracerEventMessage implements BacklogTracerEven private final String exchangeId; private final String threadName; private String endpointUri; + private boolean remoteEndpoint; private String endpointServiceUrl; private String endpointServiceProtocol; private Map<String, String> endpointServiceMetadata; @@ -193,6 +194,15 @@ public final class DefaultBacklogTracerEventMessage implements BacklogTracerEven return endpointUri; } + @Override + public boolean isRemoteEndpoint() { + return remoteEndpoint; + } + + public void setRemoteEndpoint(boolean remoteEndpoint) { + this.remoteEndpoint = remoteEndpoint; + } + public void setEndpointUri(String endpointUri) { this.endpointUri = endpointUri; } @@ -258,6 +268,7 @@ public final class DefaultBacklogTracerEventMessage implements BacklogTracerEven sb.append(prefix).append(" <routeId>").append(routeId != null ? routeId : "").append("</routeId>\n"); if (endpointUri != null) { sb.append(prefix).append(" <endpointUri>").append(endpointUri).append("</endpointUri>\n"); + sb.append(prefix).append(" <remoteEndpoint>").append(remoteEndpoint).append("</remoteEndpoint>\n"); } if (toNode != null) { sb.append(prefix).append(" <toNode>").append(toNode).append("</toNode>\n"); @@ -313,6 +324,7 @@ public final class DefaultBacklogTracerEventMessage implements BacklogTracerEven } if (endpointUri != null) { jo.put("endpointUri", endpointUri); + jo.put("remoteEndpoint", remoteEndpoint); } if (routeId != null) { jo.put("routeId", routeId); 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 2e57acf3554..1e49cd39a6d 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 @@ -710,15 +710,18 @@ public class CamelInternalProcessor extends DelegateAsyncProcessor implements In data.doneProcessing(); String uri = null; + boolean remote = true; Endpoint endpoint = notifier.after(exchange); if (endpoint != null) { uri = endpoint.getEndpointUri(); + remote = endpoint.isRemote(); } else if ((data.isFirst() || data.isLast()) && data.getToNode() == null && routeDefinition != null) { // pseudo first/last event (the from in the route) Route route = camelContext.getRoute(routeDefinition.getRouteId()); if (route != null && route.getConsumer() != null) { // get the actual resolved uri uri = route.getConsumer().getEndpoint().getEndpointUri(); + remote = route.getConsumer().getEndpoint().isRemote(); } else { uri = routeDefinition.getEndpointUrl(); } @@ -726,6 +729,7 @@ public class CamelInternalProcessor extends DelegateAsyncProcessor implements In if (uri != null) { data.setEndpointUri(uri); } + data.setRemoteEndpoint(remote); if (endpoint instanceof EndpointServiceLocation esl) { data.setEndpointServiceUrl(esl.getServiceUrl()); data.setEndpointServiceProtocol(esl.getServiceProtocol()); diff --git a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultTracer.java b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultTracer.java index aa23da6ebeb..036e318b96b 100644 --- a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultTracer.java +++ b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultTracer.java @@ -119,21 +119,20 @@ public class DefaultTracer extends ServiceSupport implements CamelContextAware, return; } + // skip non-remote endpoints + if (!endpoint.isRemote()) { + return; + } + if (shouldTrace(node)) { String routeId = ExpressionBuilder.routeIdExpression().evaluate(exchange, String.class); - // we need to avoid leak the sensible information here - // the sanitizeUri takes a very long time for very long string and the format cuts this to - // 33 characters, anyway. Cut this to 50 characters. This will give enough space for removing - // characters in the sanitizeUri method and will be reasonably fast - String label = URISupport.sanitizeUri(StringHelper.limitLength(node.getLabel(), 50)); - StringBuilder sb = new StringBuilder(); sb.append(String.format(tracingFormat, " ", routeId, "")); sb.append(" "); StringJoiner sj = new StringJoiner(", "); - sj.add("url=" + endpoint.toString()); + sj.add("url=" + endpoint); if (endpoint instanceof EndpointServiceLocation esl && esl.getServiceUrl() != null) { // enrich with service location sj.add("service=" + esl.getServiceUrl());