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 a8e3704acd22e728e60cdce2a4fdff796dc3ad79
Author: Claus Ibsen <claus.ib...@gmail.com>
AuthorDate: Sun May 26 08:11:14 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.
---
 .../component/opensearch/OpensearchEndpoint.java   |  8 +++++++-
 .../component/paho/mqtt5/PahoMqtt5Endpoint.java    | 22 +++++++++++++++++++++-
 2 files changed, 28 insertions(+), 2 deletions(-)

diff --git 
a/components/camel-opensearch/src/main/java/org/apache/camel/component/opensearch/OpensearchEndpoint.java
 
b/components/camel-opensearch/src/main/java/org/apache/camel/component/opensearch/OpensearchEndpoint.java
index 0b1821251dc..7770e0106b6 100644
--- 
a/components/camel-opensearch/src/main/java/org/apache/camel/component/opensearch/OpensearchEndpoint.java
+++ 
b/components/camel-opensearch/src/main/java/org/apache/camel/component/opensearch/OpensearchEndpoint.java
@@ -20,6 +20,7 @@ import org.apache.camel.Category;
 import org.apache.camel.Consumer;
 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;
@@ -31,7 +32,7 @@ import org.opensearch.client.RestClient;
 @UriEndpoint(firstVersion = "4.0.0", scheme = "opensearch", title = 
"OpenSearch",
              syntax = "opensearch:clusterName", producerOnly = true,
              category = { Category.SEARCH, Category.MONITORING }, headersClass 
= OpensearchConstants.class)
-public class OpensearchEndpoint extends DefaultEndpoint {
+public class OpensearchEndpoint extends DefaultEndpoint implements 
EndpointLocationAddress {
 
     @UriParam
     private final OpensearchConfiguration configuration;
@@ -62,4 +63,9 @@ public class OpensearchEndpoint extends DefaultEndpoint {
     public RestClient getClient() {
         return client;
     }
+
+    @Override
+    public String getAddress() {
+        return configuration.getHostAddresses();
+    }
 }
diff --git 
a/components/camel-paho-mqtt5/src/main/java/org/apache/camel/component/paho/mqtt5/PahoMqtt5Endpoint.java
 
b/components/camel-paho-mqtt5/src/main/java/org/apache/camel/component/paho/mqtt5/PahoMqtt5Endpoint.java
index 13852be4ec3..37c0724d9a0 100644
--- 
a/components/camel-paho-mqtt5/src/main/java/org/apache/camel/component/paho/mqtt5/PahoMqtt5Endpoint.java
+++ 
b/components/camel-paho-mqtt5/src/main/java/org/apache/camel/component/paho/mqtt5/PahoMqtt5Endpoint.java
@@ -16,12 +16,15 @@
  */
 package org.apache.camel.component.paho.mqtt5;
 
+import java.util.HashMap;
+import java.util.Map;
 import java.util.UUID;
 
 import org.apache.camel.Category;
 import org.apache.camel.Consumer;
 import org.apache.camel.Processor;
 import org.apache.camel.Producer;
+import org.apache.camel.spi.EndpointLocationAddress;
 import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.UriEndpoint;
 import org.apache.camel.spi.UriParam;
@@ -41,7 +44,7 @@ import org.eclipse.paho.mqttv5.common.MqttMessage;
 @UriEndpoint(firstVersion = "3.8.0", scheme = "paho-mqtt5", title = "Paho MQTT 
5",
              category = { Category.MESSAGING, Category.IOT },
              syntax = "paho-mqtt5:topic", headersClass = 
PahoMqtt5Constants.class)
-public class PahoMqtt5Endpoint extends DefaultEndpoint {
+public class PahoMqtt5Endpoint extends DefaultEndpoint implements 
EndpointLocationAddress {
 
     // Configuration members
     @UriPath(description = "Name of the topic")
@@ -73,6 +76,23 @@ public class PahoMqtt5Endpoint extends DefaultEndpoint {
         return consumer;
     }
 
+    @Override
+    public String getAddress() {
+        return configuration.getBrokerUrl();
+    }
+
+    @Override
+    public Map<String, String> getAddressMetadata() {
+        Map<String, String> map = new HashMap<>();
+        if (configuration.getClientId() != null) {
+            map.put("clientId", configuration.getClientId());
+        }
+        if (configuration.getUserName() != null) {
+            map.put("username", configuration.getUserName());
+        }
+        return map.isEmpty() ? null : map;
+    }
+
     @Override
     public PahoMqtt5Component getComponent() {
         return (PahoMqtt5Component) super.getComponent();

Reply via email to