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();