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

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

commit 1ba8c64137b14e52fca73185ca31caf1be671a10
Author: Claus Ibsen <claus.ib...@gmail.com>
AuthorDate: Sun May 26 11:55:38 2024 +0200

    CAMEL-20798: Add RemoteAddress to endpoints so they can tell the 
url/hostname etc for the system it connects. This is needed for better 
monitoring, tracing and management. Add this information into camel-tracer as 
tags.
---
 .../java/org/apache/camel/http/common/HttpCommonEndpoint.java | 11 ++++++++++-
 .../java/org/apache/camel/component/netty/NettyEndpoint.java  |  8 +++++++-
 .../apache/camel/component/vertx/http/VertxHttpEndpoint.java  | 11 ++++++++++-
 .../component/vertx/websocket/VertxWebsocketConsumer.java     |  5 +++++
 .../component/vertx/websocket/VertxWebsocketEndpoint.java     |  8 +++++++-
 5 files changed, 39 insertions(+), 4 deletions(-)

diff --git 
a/components/camel-http-common/src/main/java/org/apache/camel/http/common/HttpCommonEndpoint.java
 
b/components/camel-http-common/src/main/java/org/apache/camel/http/common/HttpCommonEndpoint.java
index 0e97735a413..93d5c665042 100644
--- 
a/components/camel-http-common/src/main/java/org/apache/camel/http/common/HttpCommonEndpoint.java
+++ 
b/components/camel-http-common/src/main/java/org/apache/camel/http/common/HttpCommonEndpoint.java
@@ -22,6 +22,7 @@ import java.util.Map;
 import org.apache.camel.cloud.DiscoverableService;
 import org.apache.camel.cloud.ServiceDefinition;
 import org.apache.camel.http.base.cookie.CookieHandler;
+import org.apache.camel.spi.EndpointLocationAddress;
 import org.apache.camel.spi.HeaderFilterStrategy;
 import org.apache.camel.spi.HeaderFilterStrategyAware;
 import org.apache.camel.spi.Metadata;
@@ -30,7 +31,7 @@ import org.apache.camel.spi.UriPath;
 import org.apache.camel.support.DefaultEndpoint;
 import org.apache.camel.util.CollectionHelper;
 
-public abstract class HttpCommonEndpoint extends DefaultEndpoint implements 
HeaderFilterStrategyAware, DiscoverableService {
+public abstract class HttpCommonEndpoint extends DefaultEndpoint implements 
HeaderFilterStrategyAware, DiscoverableService, EndpointLocationAddress {
 
     // Note: all options must be documented with description in annotations so 
extended components can access the documentation
 
@@ -193,6 +194,14 @@ public abstract class HttpCommonEndpoint extends 
DefaultEndpoint implements Head
         this.httpUri = httpURI;
     }
 
+    @Override
+    public String getAddress() {
+        if (httpUri != null) {
+            return httpUri.toString();
+        }
+        return null;
+    }
+
     public void connect(HttpConsumer consumer) throws Exception {
         component.connect(consumer);
     }
diff --git 
a/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyEndpoint.java
 
b/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyEndpoint.java
index 1066005933e..c9b978fb46e 100644
--- 
a/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyEndpoint.java
+++ 
b/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyEndpoint.java
@@ -32,6 +32,7 @@ import org.apache.camel.Consumer;
 import org.apache.camel.Message;
 import org.apache.camel.Processor;
 import org.apache.camel.Producer;
+import org.apache.camel.spi.EndpointLocationAddress;
 import org.apache.camel.spi.UriEndpoint;
 import org.apache.camel.spi.UriParam;
 import org.apache.camel.support.DefaultEndpoint;
@@ -43,7 +44,7 @@ import org.apache.camel.util.ObjectHelper;
  */
 @UriEndpoint(firstVersion = "2.14.0", scheme = "netty", title = "Netty", 
syntax = "netty:protocol://host:port",
              category = { Category.NETWORKING }, headersClass = 
NettyConstants.class)
-public class NettyEndpoint extends DefaultEndpoint implements AsyncEndpoint {
+public class NettyEndpoint extends DefaultEndpoint implements AsyncEndpoint, 
EndpointLocationAddress {
     @UriParam
     private NettyConfiguration configuration;
     @UriParam(defaultValue = "false", label = "advanced",
@@ -55,6 +56,11 @@ public class NettyEndpoint extends DefaultEndpoint 
implements AsyncEndpoint {
         this.configuration = configuration;
     }
 
+    @Override
+    public String getAddress() {
+        return configuration.getProtocol() + ":" + configuration.getHost() + 
":" + configuration.getPort();
+    }
+
     public boolean isSynchronous() {
         return synchronous;
     }
diff --git 
a/components/camel-vertx/camel-vertx-http/src/main/java/org/apache/camel/component/vertx/http/VertxHttpEndpoint.java
 
b/components/camel-vertx/camel-vertx-http/src/main/java/org/apache/camel/component/vertx/http/VertxHttpEndpoint.java
index 4fa959b8f19..1ed948abe97 100644
--- 
a/components/camel-vertx/camel-vertx-http/src/main/java/org/apache/camel/component/vertx/http/VertxHttpEndpoint.java
+++ 
b/components/camel-vertx/camel-vertx-http/src/main/java/org/apache/camel/component/vertx/http/VertxHttpEndpoint.java
@@ -28,6 +28,7 @@ import org.apache.camel.Processor;
 import org.apache.camel.Producer;
 import org.apache.camel.component.vertx.common.VertxHelper;
 import org.apache.camel.http.base.HttpHelper;
+import org.apache.camel.spi.EndpointLocationAddress;
 import org.apache.camel.spi.UriEndpoint;
 import org.apache.camel.spi.UriParam;
 import org.apache.camel.support.DefaultEndpoint;
@@ -38,7 +39,7 @@ import org.apache.camel.util.ObjectHelper;
 @UriEndpoint(firstVersion = "3.5.0", scheme = "vertx-http", title = "Vert.x 
HTTP Client", syntax = "vertx-http:httpUri",
              category = { Category.HTTP }, producerOnly = true, 
lenientProperties = true,
              headersClass = VertxHttpConstants.class)
-public class VertxHttpEndpoint extends DefaultEndpoint {
+public class VertxHttpEndpoint extends DefaultEndpoint implements 
EndpointLocationAddress {
 
     @UriParam
     private final VertxHttpConfiguration configuration;
@@ -52,6 +53,14 @@ public class VertxHttpEndpoint extends DefaultEndpoint {
         this.configuration = configuration;
     }
 
+    @Override
+    public String getAddress() {
+        if (configuration != null && configuration.getHttpUri() != null) {
+            return configuration.getHttpUri().toString();
+        }
+        return null;
+    }
+
     @Override
     public VertxHttpComponent getComponent() {
         return (VertxHttpComponent) super.getComponent();
diff --git 
a/components/camel-vertx/camel-vertx-websocket/src/main/java/org/apache/camel/component/vertx/websocket/VertxWebsocketConsumer.java
 
b/components/camel-vertx/camel-vertx-websocket/src/main/java/org/apache/camel/component/vertx/websocket/VertxWebsocketConsumer.java
index 538fada8a1c..235bbbc4c36 100644
--- 
a/components/camel-vertx/camel-vertx-websocket/src/main/java/org/apache/camel/component/vertx/websocket/VertxWebsocketConsumer.java
+++ 
b/components/camel-vertx/camel-vertx-websocket/src/main/java/org/apache/camel/component/vertx/websocket/VertxWebsocketConsumer.java
@@ -39,6 +39,11 @@ public class VertxWebsocketConsumer extends DefaultConsumer {
         this.endpoint = endpoint;
     }
 
+    @Override
+    public boolean isHostedService() {
+        return true;
+    }
+
     @Override
     protected void doStart() throws Exception {
         getComponent().connectConsumer(this);
diff --git 
a/components/camel-vertx/camel-vertx-websocket/src/main/java/org/apache/camel/component/vertx/websocket/VertxWebsocketEndpoint.java
 
b/components/camel-vertx/camel-vertx-websocket/src/main/java/org/apache/camel/component/vertx/websocket/VertxWebsocketEndpoint.java
index 4c162867bce..41c8fcff47e 100644
--- 
a/components/camel-vertx/camel-vertx-websocket/src/main/java/org/apache/camel/component/vertx/websocket/VertxWebsocketEndpoint.java
+++ 
b/components/camel-vertx/camel-vertx-websocket/src/main/java/org/apache/camel/component/vertx/websocket/VertxWebsocketEndpoint.java
@@ -35,6 +35,7 @@ import org.apache.camel.Exchange;
 import org.apache.camel.Processor;
 import org.apache.camel.Producer;
 import org.apache.camel.component.vertx.common.VertxHelper;
+import org.apache.camel.spi.EndpointLocationAddress;
 import org.apache.camel.spi.UriEndpoint;
 import org.apache.camel.spi.UriParam;
 import org.apache.camel.support.DefaultEndpoint;
@@ -51,7 +52,7 @@ import static 
org.apache.camel.component.vertx.websocket.VertxWebsocketConstants
 @UriEndpoint(firstVersion = "3.5.0", scheme = "vertx-websocket", title = 
"Vert.x WebSocket",
              syntax = "vertx-websocket:host:port/path", category = { 
Category.HTTP, Category.NETWORKING },
              headersClass = VertxWebsocketConstants.class, lenientProperties = 
true)
-public class VertxWebsocketEndpoint extends DefaultEndpoint {
+public class VertxWebsocketEndpoint extends DefaultEndpoint implements 
EndpointLocationAddress {
 
     private static final Logger LOG = 
LoggerFactory.getLogger(VertxWebsocketEndpoint.class);
 
@@ -66,6 +67,11 @@ public class VertxWebsocketEndpoint extends DefaultEndpoint {
         this.configuration = configuration;
     }
 
+    @Override
+    public String getAddress() {
+        return configuration.getHost() + ":" + configuration.getPort();
+    }
+
     @Override
     public boolean isLenientProperties() {
         // Enable custom query parameters to be passed on the producer 
WebSocket URI

Reply via email to