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