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 2e6adff748323266a260ab9aebb62b7a6db4411a Author: Claus Ibsen <claus.ib...@gmail.com> AuthorDate: Mon May 27 18:37:11 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. --- .../apache/camel/component/atom/AtomEndpoint.java | 13 ++++++++++- .../apache/camel/component/irc/IrcEndpoint.java | 23 +++++++++++++++++- .../apache/camel/component/jira/JiraEndpoint.java | 22 +++++++++++++++++- .../apache/camel/component/jmx/JMXEndpoint.java | 21 ++++++++++++++++- .../camel/component/jt400/Jt400Endpoint.java | 23 +++++++++++++++++- .../kubernetes/AbstractKubernetesEndpoint.java | 17 +++++++++++++- .../camel/component/milvus/MilvusEndpoint.java | 14 ++++++++++- .../camel/component/minio/MinioEndpoint.java | 13 ++++++++++- .../camel/oaipmh/component/OAIPMHEndpoint.java | 13 ++++++++++- .../camel/component/pgevent/PgEventEndpoint.java | 27 ++++++++++++++++++++-- .../camel/component/plc4x/Plc4XEndpoint.java | 14 ++++++++++- .../camel/component/printer/PrinterEndpoint.java | 13 ++++++++++- .../camel/component/qdrant/QdrantEndpoint.java | 13 ++++++++++- .../robotframework/RobotFrameworkEndpoint.java | 2 +- .../apache/camel/component/rss/RssEndpoint.java | 13 ++++++++++- .../spring/ws/SpringWebserviceConsumer.java | 5 ++++ .../camel/component/telegram/TelegramEndpoint.java | 16 ++++++++++++- 17 files changed, 245 insertions(+), 17 deletions(-) diff --git a/components/camel-atom/src/main/java/org/apache/camel/component/atom/AtomEndpoint.java b/components/camel-atom/src/main/java/org/apache/camel/component/atom/AtomEndpoint.java index 6322fed1260..f54b66c88a3 100644 --- a/components/camel-atom/src/main/java/org/apache/camel/component/atom/AtomEndpoint.java +++ b/components/camel-atom/src/main/java/org/apache/camel/component/atom/AtomEndpoint.java @@ -22,6 +22,7 @@ import org.apache.camel.Processor; import org.apache.camel.component.feed.FeedComponent; import org.apache.camel.component.feed.FeedEndpoint; import org.apache.camel.component.feed.FeedPollingConsumer; +import org.apache.camel.spi.EndpointServiceLocation; import org.apache.camel.spi.UriEndpoint; /** @@ -29,7 +30,7 @@ import org.apache.camel.spi.UriEndpoint; */ @UriEndpoint(firstVersion = "1.2.0", scheme = "atom", title = "Atom", syntax = "atom:feedUri", consumerOnly = true, category = { Category.DOCUMENT }, lenientProperties = true, headersClass = AtomConstants.class) -public class AtomEndpoint extends FeedEndpoint { +public class AtomEndpoint extends FeedEndpoint implements EndpointServiceLocation { public AtomEndpoint() { } @@ -38,6 +39,16 @@ public class AtomEndpoint extends FeedEndpoint { super(endpointUri, component, feedUri); } + @Override + public String getServiceUrl() { + return feedUri; + } + + @Override + public String getServiceProtocol() { + return "atom"; + } + @Override public Exchange createExchange(Object feed) { Exchange exchange = createExchangeWithFeedHeader(feed, AtomConstants.ATOM_FEED); diff --git a/components/camel-irc/src/main/java/org/apache/camel/component/irc/IrcEndpoint.java b/components/camel-irc/src/main/java/org/apache/camel/component/irc/IrcEndpoint.java index 81543e496b6..d36813fd6cf 100644 --- a/components/camel-irc/src/main/java/org/apache/camel/component/irc/IrcEndpoint.java +++ b/components/camel-irc/src/main/java/org/apache/camel/component/irc/IrcEndpoint.java @@ -18,6 +18,7 @@ package org.apache.camel.component.irc; import org.apache.camel.Category; import org.apache.camel.Processor; +import org.apache.camel.spi.EndpointServiceLocation; import org.apache.camel.spi.UriEndpoint; import org.apache.camel.spi.UriParam; import org.apache.camel.support.DefaultEndpoint; @@ -28,6 +29,8 @@ import org.schwering.irc.lib.IRCConstants; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import java.util.Map; + /** * Send and receive messages to/from and IRC chat. */ @@ -37,7 +40,7 @@ import org.slf4j.LoggerFactory; syntax = "irc:hostname:port", alternativeSyntax = "irc:username:password@hostname:port", category = { Category.CHAT }, headersClass = IrcConstants.class) -public class IrcEndpoint extends DefaultEndpoint { +public class IrcEndpoint extends DefaultEndpoint implements EndpointServiceLocation { private static final Logger LOG = LoggerFactory.getLogger(IrcEndpoint.class); @@ -52,6 +55,24 @@ public class IrcEndpoint extends DefaultEndpoint { this.configuration = configuration; } + @Override + public String getServiceUrl() { + return configuration.getHostname(); + } + + @Override + public String getServiceProtocol() { + return "irc"; + } + + @Override + public Map<String, String> getServiceMetadata() { + if (configuration.getUsername() != null) { + return Map.of("username", configuration.getUsername()); + } + return null; + } + @Override public IrcProducer createProducer() throws Exception { return new IrcProducer(this); diff --git a/components/camel-jira/src/main/java/org/apache/camel/component/jira/JiraEndpoint.java b/components/camel-jira/src/main/java/org/apache/camel/component/jira/JiraEndpoint.java index f8da482ed8d..48589615aae 100644 --- a/components/camel-jira/src/main/java/org/apache/camel/component/jira/JiraEndpoint.java +++ b/components/camel-jira/src/main/java/org/apache/camel/component/jira/JiraEndpoint.java @@ -17,6 +17,7 @@ package org.apache.camel.component.jira; import java.net.URI; +import java.util.Map; import com.atlassian.jira.rest.client.api.JiraRestClient; import com.atlassian.jira.rest.client.api.JiraRestClientFactory; @@ -40,6 +41,7 @@ import org.apache.camel.component.jira.producer.FetchIssueProducer; import org.apache.camel.component.jira.producer.TransitionIssueProducer; import org.apache.camel.component.jira.producer.UpdateIssueProducer; import org.apache.camel.component.jira.producer.WatcherProducer; +import org.apache.camel.spi.EndpointServiceLocation; import org.apache.camel.spi.Metadata; import org.apache.camel.spi.Registry; import org.apache.camel.spi.UriEndpoint; @@ -75,7 +77,7 @@ import static org.apache.camel.component.jira.JiraConstants.JIRA_REST_CLIENT_FAC */ @UriEndpoint(firstVersion = "3.0", scheme = "jira", title = "Jira", syntax = "jira:type", category = { Category.DOCUMENT }, headersClass = JiraConstants.class) -public class JiraEndpoint extends DefaultEndpoint { +public class JiraEndpoint extends DefaultEndpoint implements EndpointServiceLocation { private static final Logger LOG = LoggerFactory.getLogger(JiraEndpoint.class); @@ -100,6 +102,24 @@ public class JiraEndpoint extends DefaultEndpoint { this.configuration = configuration; } + @Override + public String getServiceUrl() { + return configuration.getJiraUrl(); + } + + @Override + public String getServiceProtocol() { + return "rest"; + } + + @Override + public Map<String, String> getServiceMetadata() { + if (configuration.getUsername() != null) { + return Map.of("username", configuration.getUsername()); + } + return null; + } + public JiraConfiguration getConfiguration() { return configuration; } diff --git a/components/camel-jmx/src/main/java/org/apache/camel/component/jmx/JMXEndpoint.java b/components/camel-jmx/src/main/java/org/apache/camel/component/jmx/JMXEndpoint.java index ac88a52cbbf..d9dee42a4a5 100644 --- a/components/camel-jmx/src/main/java/org/apache/camel/component/jmx/JMXEndpoint.java +++ b/components/camel-jmx/src/main/java/org/apache/camel/component/jmx/JMXEndpoint.java @@ -28,6 +28,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.EndpointServiceLocation; import org.apache.camel.spi.Metadata; import org.apache.camel.spi.UriEndpoint; import org.apache.camel.spi.UriParam; @@ -52,7 +53,7 @@ import org.apache.camel.util.ObjectHelper; */ @UriEndpoint(firstVersion = "2.6.0", scheme = "jmx", title = "JMX", syntax = "jmx:serverURL", consumerOnly = true, remote = false, category = { Category.MONITORING }, headersClass = JMXConstants.class) -public class JMXEndpoint extends DefaultEndpoint { +public class JMXEndpoint extends DefaultEndpoint implements EndpointServiceLocation { // error messages as constants so they can be asserted on from unit tests protected static final String ERR_PLATFORM_SERVER = "Monitor type consumer only supported on platform server."; @@ -254,6 +255,24 @@ public class JMXEndpoint extends DefaultEndpoint { super(aEndpointUri, aComponent); } + @Override + public String getServiceUrl() { + return serverURL; + } + + @Override + public String getServiceProtocol() { + return "rmi"; + } + + @Override + public Map<String, String> getServiceMetadata() { + if (user != null) { + return Map.of("username", user); + } + return null; + } + @Override public Consumer createConsumer(Processor aProcessor) throws Exception { // validate that all of the endpoint is configured properly diff --git a/components/camel-jt400/src/main/java/org/apache/camel/component/jt400/Jt400Endpoint.java b/components/camel-jt400/src/main/java/org/apache/camel/component/jt400/Jt400Endpoint.java index 794ebd669e4..2a8271c9f12 100644 --- a/components/camel-jt400/src/main/java/org/apache/camel/component/jt400/Jt400Endpoint.java +++ b/components/camel-jt400/src/main/java/org/apache/camel/component/jt400/Jt400Endpoint.java @@ -18,6 +18,7 @@ package org.apache.camel.component.jt400; import java.net.URISyntaxException; import java.util.Arrays; +import java.util.Map; import javax.naming.OperationNotSupportedException; @@ -29,6 +30,7 @@ import org.apache.camel.Consumer; import org.apache.camel.MultipleConsumersSupport; import org.apache.camel.Processor; import org.apache.camel.Producer; +import org.apache.camel.spi.EndpointServiceLocation; import org.apache.camel.spi.UriEndpoint; import org.apache.camel.spi.UriParam; import org.apache.camel.support.ScheduledPollEndpoint; @@ -42,7 +44,7 @@ import org.apache.camel.util.URISupport; @UriEndpoint(firstVersion = "1.5.0", scheme = "jt400", title = "JT400", syntax = "jt400:userID:password@systemName/QSYS.LIB/objectPath.type", category = { Category.MESSAGING }, headersClass = Jt400Constants.class) -public class Jt400Endpoint extends ScheduledPollEndpoint implements MultipleConsumersSupport { +public class Jt400Endpoint extends ScheduledPollEndpoint implements MultipleConsumersSupport, EndpointServiceLocation { public static final String KEY = Jt400Constants.KEY; public static final String SENDER_INFORMATION = Jt400Constants.SENDER_INFORMATION; @@ -73,6 +75,25 @@ public class Jt400Endpoint extends ScheduledPollEndpoint implements MultipleCons } } + @Override + public String getServiceUrl() { + return configuration.getSystemName(); + } + + @Override + public String getServiceProtocol() { + return "tcp"; + } + + @Override + public Map<String, String> getServiceMetadata() { + if (getUserID() != null) { + return Map.of("username", getUserID()); + } + return null; + } + + public Jt400Configuration getConfiguration() { return configuration; } diff --git a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/AbstractKubernetesEndpoint.java b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/AbstractKubernetesEndpoint.java index 01aa3c85e39..381780b50aa 100644 --- a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/AbstractKubernetesEndpoint.java +++ b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/AbstractKubernetesEndpoint.java @@ -19,13 +19,14 @@ package org.apache.camel.component.kubernetes; import java.util.concurrent.ExecutorService; import io.fabric8.kubernetes.client.KubernetesClient; +import org.apache.camel.spi.EndpointServiceLocation; import org.apache.camel.spi.UriParam; import org.apache.camel.support.DefaultEndpoint; /** * The base kubernetes endpoint allows to work with Kubernetes PaaS. */ -public abstract class AbstractKubernetesEndpoint extends DefaultEndpoint { +public abstract class AbstractKubernetesEndpoint extends DefaultEndpoint implements EndpointServiceLocation { @UriParam private KubernetesConfiguration configuration; @@ -37,6 +38,20 @@ public abstract class AbstractKubernetesEndpoint extends DefaultEndpoint { this.configuration = config; } + @Override + public String getServiceUrl() { + String answer = configuration.getMasterUrl(); + if (answer == null || answer.isEmpty() && client != null) { + answer = client.getMasterUrl().toString(); + } + return answer; + } + + @Override + public String getServiceProtocol() { + return "rest"; + } + public KubernetesConfiguration getConfiguration() { return configuration; } diff --git a/components/camel-milvus/src/main/java/org/apache/camel/component/milvus/MilvusEndpoint.java b/components/camel-milvus/src/main/java/org/apache/camel/component/milvus/MilvusEndpoint.java index 908e72380f6..7069961fd27 100644 --- a/components/camel-milvus/src/main/java/org/apache/camel/component/milvus/MilvusEndpoint.java +++ b/components/camel-milvus/src/main/java/org/apache/camel/component/milvus/MilvusEndpoint.java @@ -16,6 +16,7 @@ */ package org.apache.camel.component.milvus; +import java.util.Map; import java.util.concurrent.TimeUnit; import io.milvus.client.MilvusClient; @@ -26,6 +27,7 @@ import org.apache.camel.Component; import org.apache.camel.Consumer; import org.apache.camel.Processor; import org.apache.camel.Producer; +import org.apache.camel.spi.EndpointServiceLocation; import org.apache.camel.spi.Metadata; import org.apache.camel.spi.UriEndpoint; import org.apache.camel.spi.UriParam; @@ -46,7 +48,7 @@ import org.apache.camel.support.DefaultEndpoint; Category.AI }, headersClass = Milvus.Headers.class) -public class MilvusEndpoint extends DefaultEndpoint { +public class MilvusEndpoint extends DefaultEndpoint implements EndpointServiceLocation { @Metadata(required = true) @UriPath(description = "The collection Name") @@ -74,6 +76,16 @@ public class MilvusEndpoint extends DefaultEndpoint { this.lock = new Object(); } + @Override + public String getServiceUrl() { + return configuration.getHost() + ":" + configuration.getPort(); + } + + @Override + public String getServiceProtocol() { + return "grpc"; + } + public MilvusConfiguration getConfiguration() { return configuration; } diff --git a/components/camel-minio/src/main/java/org/apache/camel/component/minio/MinioEndpoint.java b/components/camel-minio/src/main/java/org/apache/camel/component/minio/MinioEndpoint.java index 71e8e66da6c..0b6de66089a 100644 --- a/components/camel-minio/src/main/java/org/apache/camel/component/minio/MinioEndpoint.java +++ b/components/camel-minio/src/main/java/org/apache/camel/component/minio/MinioEndpoint.java @@ -28,6 +28,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.EndpointServiceLocation; import org.apache.camel.spi.UriEndpoint; import org.apache.camel.spi.UriParam; import org.apache.camel.support.ScheduledPollEndpoint; @@ -41,7 +42,7 @@ import static org.apache.camel.util.ObjectHelper.isNotEmpty; */ @UriEndpoint(firstVersion = "3.5.0", scheme = "minio", title = "Minio", syntax = "minio:bucketName", category = { Category.CLOUD, Category.FILE }, headersClass = MinioConstants.class) -public class MinioEndpoint extends ScheduledPollEndpoint { +public class MinioEndpoint extends ScheduledPollEndpoint implements EndpointServiceLocation { private static final Logger LOG = LoggerFactory.getLogger(MinioEndpoint.class); @@ -55,6 +56,16 @@ public class MinioEndpoint extends ScheduledPollEndpoint { this.configuration = configuration; } + @Override + public String getServiceUrl() { + return configuration.getEndpoint(); + } + + @Override + public String getServiceProtocol() { + return "rest"; + } + @Override public Consumer createConsumer(Processor processor) throws Exception { MinioConsumer minioConsumer = new MinioConsumer(this, processor); diff --git a/components/camel-oaipmh/src/main/java/org/apache/camel/oaipmh/component/OAIPMHEndpoint.java b/components/camel-oaipmh/src/main/java/org/apache/camel/oaipmh/component/OAIPMHEndpoint.java index 3ce9bc6004a..0b030a93995 100644 --- a/components/camel-oaipmh/src/main/java/org/apache/camel/oaipmh/component/OAIPMHEndpoint.java +++ b/components/camel-oaipmh/src/main/java/org/apache/camel/oaipmh/component/OAIPMHEndpoint.java @@ -24,6 +24,7 @@ import org.apache.camel.Consumer; import org.apache.camel.Processor; import org.apache.camel.Producer; import org.apache.camel.oaipmh.component.model.OAIPMHConstants; +import org.apache.camel.spi.EndpointServiceLocation; import org.apache.camel.spi.Metadata; import org.apache.camel.spi.UriEndpoint; import org.apache.camel.spi.UriParam; @@ -37,7 +38,7 @@ import org.joda.time.format.ISODateTimeFormat; */ @UriEndpoint(firstVersion = "3.5.0", scheme = "oaipmh", title = "OAI-PMH", syntax = "oaipmh:baseUrl", lenientProperties = true, category = { Category.SEARCH }, headersClass = OAIPMHConstants.class) -public class OAIPMHEndpoint extends ScheduledPollEndpoint { +public class OAIPMHEndpoint extends ScheduledPollEndpoint implements EndpointServiceLocation { private transient URI url; @@ -81,6 +82,16 @@ public class OAIPMHEndpoint extends ScheduledPollEndpoint { this.baseUrl = remaining; } + @Override + public String getServiceUrl() { + return baseUrl; + } + + @Override + public String getServiceProtocol() { + return "oai-phm"; + } + @Override public boolean isLenientProperties() { return true; diff --git a/components/camel-pgevent/src/main/java/org/apache/camel/component/pgevent/PgEventEndpoint.java b/components/camel-pgevent/src/main/java/org/apache/camel/component/pgevent/PgEventEndpoint.java index d84675dfbfe..ca506ffef4b 100644 --- a/components/camel-pgevent/src/main/java/org/apache/camel/component/pgevent/PgEventEndpoint.java +++ b/components/camel-pgevent/src/main/java/org/apache/camel/component/pgevent/PgEventEndpoint.java @@ -17,6 +17,7 @@ package org.apache.camel.component.pgevent; import java.sql.DriverManager; +import java.util.Map; import javax.sql.DataSource; @@ -27,6 +28,7 @@ import org.apache.camel.Consumer; import org.apache.camel.Processor; import org.apache.camel.Producer; import org.apache.camel.spi.ClassResolver; +import org.apache.camel.spi.EndpointServiceLocation; import org.apache.camel.spi.Metadata; import org.apache.camel.spi.UriEndpoint; import org.apache.camel.spi.UriParam; @@ -43,7 +45,7 @@ import org.slf4j.LoggerFactory; @UriEndpoint(firstVersion = "2.15.0", scheme = "pgevent", title = "PostgresSQL Event", syntax = "pgevent:host:port/database/channel", category = { Category.DATABASE }, headersClass = PgEventConstants.class) -public class PgEventEndpoint extends DefaultEndpoint { +public class PgEventEndpoint extends DefaultEndpoint implements EndpointServiceLocation { private static final Logger LOG = LoggerFactory.getLogger(PgEventEndpoint.class); @@ -66,7 +68,7 @@ public class PgEventEndpoint extends DefaultEndpoint { private String user = "postgres"; @UriParam(label = "security", secret = true) private String pass; - @UriParam + @UriParam(label = "advanced") private DataSource datasource; private final String uri; @@ -84,6 +86,27 @@ public class PgEventEndpoint extends DefaultEndpoint { parseUri(); } + @Override + public String getServiceUrl() { + if (host != null) { + return host + ":" + port; + } + return null; + } + + @Override + public Map<String, String> getServiceMetadata() { + if (user != null) { + return Map.of("username", user); + } + return null; + } + + @Override + public String getServiceProtocol() { + return "jdbc"; + } + public final PGConnection initJdbc() throws Exception { PGConnection conn; if (this.getDatasource() != null) { diff --git a/components/camel-plc4x/src/main/java/org/apache/camel/component/plc4x/Plc4XEndpoint.java b/components/camel-plc4x/src/main/java/org/apache/camel/component/plc4x/Plc4XEndpoint.java index 584931353db..b4f6008ffcb 100644 --- a/components/camel-plc4x/src/main/java/org/apache/camel/component/plc4x/Plc4XEndpoint.java +++ b/components/camel-plc4x/src/main/java/org/apache/camel/component/plc4x/Plc4XEndpoint.java @@ -24,11 +24,13 @@ import org.apache.camel.Consumer; import org.apache.camel.PollingConsumer; import org.apache.camel.Processor; import org.apache.camel.Producer; +import org.apache.camel.spi.EndpointServiceLocation; import org.apache.camel.spi.Metadata; import org.apache.camel.spi.UriEndpoint; import org.apache.camel.spi.UriParam; import org.apache.camel.spi.UriPath; import org.apache.camel.support.DefaultEndpoint; +import org.apache.camel.util.StringHelper; import org.apache.plc4x.java.DefaultPlcDriverManager; import org.apache.plc4x.java.api.PlcConnection; import org.apache.plc4x.java.api.exceptions.PlcConnectionException; @@ -43,7 +45,7 @@ import org.slf4j.LoggerFactory; */ @UriEndpoint(scheme = "plc4x", firstVersion = "3.20.0", title = "PLC4X", syntax = "plc4x:driver", category = Category.IOT) -public class Plc4XEndpoint extends DefaultEndpoint { +public class Plc4XEndpoint extends DefaultEndpoint implements EndpointServiceLocation { private static final Logger LOGGER = LoggerFactory.getLogger(Plc4XEndpoint.class); protected DefaultPlcDriverManager plcDriverManager; @@ -74,6 +76,16 @@ public class Plc4XEndpoint extends DefaultEndpoint { this.uri = endpointUri.replaceFirst("plc4x:/?/?", ""); } + @Override + public String getServiceUrl() { + return StringHelper.after(uri, ":", uri); + } + + @Override + public String getServiceProtocol() { + return StringHelper.before(uri, ":", "plc4x"); + } + public int getPeriod() { return period; } diff --git a/components/camel-printer/src/main/java/org/apache/camel/component/printer/PrinterEndpoint.java b/components/camel-printer/src/main/java/org/apache/camel/component/printer/PrinterEndpoint.java index 1c911691d6a..f65e2d4e2e2 100644 --- a/components/camel-printer/src/main/java/org/apache/camel/component/printer/PrinterEndpoint.java +++ b/components/camel-printer/src/main/java/org/apache/camel/component/printer/PrinterEndpoint.java @@ -21,6 +21,7 @@ import org.apache.camel.Component; import org.apache.camel.Consumer; import org.apache.camel.Processor; import org.apache.camel.Producer; +import org.apache.camel.spi.EndpointServiceLocation; import org.apache.camel.spi.Metadata; import org.apache.camel.spi.UriEndpoint; import org.apache.camel.spi.UriParam; @@ -37,7 +38,7 @@ import org.apache.camel.support.DefaultEndpoint; */ @UriEndpoint(firstVersion = "2.1.0", scheme = "lpr", title = "Printer", syntax = "lpr:hostname:port/printername", producerOnly = true, category = { Category.DOCUMENT }, headersClass = PrinterEndpoint.class) -public class PrinterEndpoint extends DefaultEndpoint { +public class PrinterEndpoint extends DefaultEndpoint implements EndpointServiceLocation { @Metadata(label = "producer", description = "The name of the job", javaType = "String") public static final String JOB_NAME = "PrinterJobName"; @@ -53,6 +54,16 @@ public class PrinterEndpoint extends DefaultEndpoint { this.config = config; } + @Override + public String getServiceUrl() { + return config.getHostname() + ":" + config.getPort(); + } + + @Override + public String getServiceProtocol() { + return "printer"; + } + @Override public Consumer createConsumer(Processor processor) throws Exception { throw new UnsupportedOperationException("You cannot create a consumer for a Printer endpoint"); diff --git a/components/camel-qdrant/src/main/java/org/apache/camel/component/qdrant/QdrantEndpoint.java b/components/camel-qdrant/src/main/java/org/apache/camel/component/qdrant/QdrantEndpoint.java index 3004cf30763..50b90bf24bc 100644 --- a/components/camel-qdrant/src/main/java/org/apache/camel/component/qdrant/QdrantEndpoint.java +++ b/components/camel-qdrant/src/main/java/org/apache/camel/component/qdrant/QdrantEndpoint.java @@ -25,6 +25,7 @@ import org.apache.camel.Component; import org.apache.camel.Consumer; import org.apache.camel.Processor; import org.apache.camel.Producer; +import org.apache.camel.spi.EndpointServiceLocation; import org.apache.camel.spi.Metadata; import org.apache.camel.spi.UriEndpoint; import org.apache.camel.spi.UriParam; @@ -45,7 +46,7 @@ import org.apache.camel.support.DefaultEndpoint; Category.AI }, headersClass = Qdrant.Headers.class) -public class QdrantEndpoint extends DefaultEndpoint { +public class QdrantEndpoint extends DefaultEndpoint implements EndpointServiceLocation { @Metadata(required = true) @UriPath(description = "The collection Name") @@ -73,6 +74,16 @@ public class QdrantEndpoint extends DefaultEndpoint { this.lock = new Object(); } + @Override + public String getServiceUrl() { + return configuration.getHost() + ":" + configuration.getPort(); + } + + @Override + public String getServiceProtocol() { + return "grpc"; + } + public QdrantConfiguration getConfiguration() { return configuration; } diff --git a/components/camel-robotframework/src/main/java/org/apache/camel/component/robotframework/RobotFrameworkEndpoint.java b/components/camel-robotframework/src/main/java/org/apache/camel/component/robotframework/RobotFrameworkEndpoint.java index 393895ecee8..ef3b229c0dc 100644 --- a/components/camel-robotframework/src/main/java/org/apache/camel/component/robotframework/RobotFrameworkEndpoint.java +++ b/components/camel-robotframework/src/main/java/org/apache/camel/component/robotframework/RobotFrameworkEndpoint.java @@ -33,7 +33,7 @@ import org.robotframework.RobotFramework; */ @UriEndpoint(firstVersion = "3.0.0", scheme = "robotframework", title = "Robot Framework", syntax = "robotframework:resourceUri", category = { Category.TESTING }, - headersClass = RobotFrameworkCamelConstants.class) + remote = false, headersClass = RobotFrameworkCamelConstants.class) public class RobotFrameworkEndpoint extends ResourceEndpoint { @UriParam diff --git a/components/camel-rss/src/main/java/org/apache/camel/component/rss/RssEndpoint.java b/components/camel-rss/src/main/java/org/apache/camel/component/rss/RssEndpoint.java index b8663c15279..fef1db7d13f 100644 --- a/components/camel-rss/src/main/java/org/apache/camel/component/rss/RssEndpoint.java +++ b/components/camel-rss/src/main/java/org/apache/camel/component/rss/RssEndpoint.java @@ -27,6 +27,7 @@ import org.apache.camel.Producer; import org.apache.camel.component.feed.FeedComponent; import org.apache.camel.component.feed.FeedEndpoint; import org.apache.camel.component.feed.FeedPollingConsumer; +import org.apache.camel.spi.EndpointServiceLocation; import org.apache.camel.spi.UriEndpoint; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -37,7 +38,7 @@ import org.slf4j.LoggerFactory; @UriEndpoint(firstVersion = "2.0.0", scheme = "rss", extendsScheme = "atom", title = "RSS", syntax = "rss:feedUri", consumerOnly = true, category = { Category.DOCUMENT }, lenientProperties = true, headersClass = RssConstants.class) -public class RssEndpoint extends FeedEndpoint { +public class RssEndpoint extends FeedEndpoint implements EndpointServiceLocation { protected static final Logger LOG = LoggerFactory.getLogger(RssEndpoint.class); public RssEndpoint() { @@ -47,6 +48,16 @@ public class RssEndpoint extends FeedEndpoint { super(endpointUri, component, feedUri); } + @Override + public String getServiceUrl() { + return feedUri; + } + + @Override + public String getServiceProtocol() { + return "rss"; + } + @Override public Producer createProducer() throws Exception { throw new UnsupportedOperationException("RssProducer is not implemented"); diff --git a/components/camel-spring-ws/src/main/java/org/apache/camel/component/spring/ws/SpringWebserviceConsumer.java b/components/camel-spring-ws/src/main/java/org/apache/camel/component/spring/ws/SpringWebserviceConsumer.java index 7d5426ae047..69feccd65dd 100644 --- a/components/camel-spring-ws/src/main/java/org/apache/camel/component/spring/ws/SpringWebserviceConsumer.java +++ b/components/camel-spring-ws/src/main/java/org/apache/camel/component/spring/ws/SpringWebserviceConsumer.java @@ -55,6 +55,11 @@ public class SpringWebserviceConsumer extends DefaultConsumer implements Message this.configuration = this.endpoint.getConfiguration(); } + @Override + public boolean isHostedService() { + return true; + } + /** * Invoked by Spring-WS when a {@link WebServiceMessage} is received */ diff --git a/components/camel-telegram/src/main/java/org/apache/camel/component/telegram/TelegramEndpoint.java b/components/camel-telegram/src/main/java/org/apache/camel/component/telegram/TelegramEndpoint.java index f82e2193b94..b3530de0724 100644 --- a/components/camel-telegram/src/main/java/org/apache/camel/component/telegram/TelegramEndpoint.java +++ b/components/camel-telegram/src/main/java/org/apache/camel/component/telegram/TelegramEndpoint.java @@ -31,6 +31,7 @@ import org.apache.camel.RuntimeCamelException; import org.apache.camel.component.telegram.service.TelegramServiceRestBotAPIAdapter; import org.apache.camel.component.webhook.WebhookCapableEndpoint; import org.apache.camel.component.webhook.WebhookConfiguration; +import org.apache.camel.spi.EndpointServiceLocation; import org.apache.camel.spi.UriEndpoint; import org.apache.camel.spi.UriParam; import org.apache.camel.support.ScheduledPollEndpoint; @@ -43,7 +44,7 @@ import org.slf4j.LoggerFactory; */ @UriEndpoint(firstVersion = "2.18.0", scheme = "telegram", title = "Telegram", syntax = "telegram:type", category = { Category.CLOUD, Category.API, Category.CHAT }, headersClass = TelegramConstants.class) -public class TelegramEndpoint extends ScheduledPollEndpoint implements WebhookCapableEndpoint { +public class TelegramEndpoint extends ScheduledPollEndpoint implements WebhookCapableEndpoint, EndpointServiceLocation { private static final Logger LOG = LoggerFactory.getLogger(TelegramEndpoint.class); @UriParam @@ -67,6 +68,19 @@ public class TelegramEndpoint extends ScheduledPollEndpoint implements WebhookCa this.client = client; } + @Override + public String getServiceUrl() { + if (configuration.getBaseUri() != null) { + return configuration.getBaseUri(); + } + return "https://api.telegram.org"; + } + + @Override + public String getServiceProtocol() { + return "rest"; + } + @Override protected void doStart() throws Exception { super.doStart();