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 <[email protected]>
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());