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

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


The following commit(s) were added to refs/heads/main by this push:
     new 114dcd0a279 CAMEL-20860: camel-core - Endpoint should have isRemote 
method (#14484)
114dcd0a279 is described below

commit 114dcd0a2795a49b6f1faeec4ba5fbb13d4bfa1c
Author: Claus Ibsen <claus.ib...@gmail.com>
AuthorDate: Wed Jun 12 08:54:29 2024 +0200

    CAMEL-20860: camel-core - Endpoint should have isRemote method (#14484)
---
 .../apache/camel/component/djl/DJLEndpoint.java    |  5 +++++
 .../bean/validator/BeanValidatorEndpoint.java      |  5 +++++
 .../apache/camel/component/bean/BeanEndpoint.java  |  5 +++++
 .../camel/component/browse/BrowseEndpoint.java     |  5 +++++
 .../caffeine/cache/CaffeineCacheEndpoint.java      |  7 +++++-
 .../caffeine/load/CaffeineLoadCacheEndpoint.java   |  7 +++++-
 .../camel/component/chunk/ChunkEndpoint.java       | 10 ++++-----
 .../component/controlbus/ControlBusEndpoint.java   |  5 +++++
 .../apache/camel/component/cron/CronEndpoint.java  |  5 +++++
 .../component/crypto/DigitalSignatureEndpoint.java |  5 +++++
 .../component/dataformat/DataFormatEndpoint.java   |  5 +++++
 .../camel/component/dataset/DataSetEndpoint.java   |  5 +++++
 .../component/dataset/DataSetTestEndpoint.java     |  5 +++++
 .../camel/component/direct/DirectEndpoint.java     |  5 +++++
 .../component/disruptor/DisruptorEndpoint.java     |  5 +++++
 .../control/DynamicRouterControlEndpoint.java      |  5 +++++
 .../routing/DynamicRouterEndpoint.java             |  5 +++++
 .../apache/camel/component/exec/ExecEndpoint.java  |  5 +++++
 .../camel/component/flatpack/FlatpackEndpoint.java |  5 +++++
 .../apache/camel/component/fop/FopEndpoint.java    |  5 +++++
 .../component/freemarker/FreemarkerEndpoint.java   |  5 +++++
 .../camel/component/grape/GrapeEndpoint.java       |  5 +++++
 .../guava/eventbus/GuavaEventBusEndpoint.java      |  5 +++++
 .../apache/camel/component/jmx/JMXEndpoint.java    |  5 +++++
 .../apache/camel/component/jolt/JoltEndpoint.java  |  5 +++++
 .../apache/camel/component/jslt/JsltEndpoint.java  |  5 +++++
 .../component/jsonpatch/JsonPatchEndpoint.java     |  5 +++++
 .../jsonvalidator/JsonValidatorEndpoint.java       |  5 +++++
 .../camel/component/jsonata/JsonataEndpoint.java   |  5 +++++
 .../apache/camel/component/jte/JteEndpoint.java    |  5 +++++
 .../camel/component/language/LanguageEndpoint.java |  5 +++++
 .../apache/camel/component/log/LogEndpoint.java    |  5 +++++
 .../component/lumberjack/LumberjackEndpoint.java   |  7 +++++-
 .../component/mapstruct/MapstructEndpoint.java     |  5 +++++
 .../camel/component/metrics/MetricsEndpoint.java   |  5 +++++
 .../component/micrometer/MicrometerEndpoint.java   |  5 +++++
 .../apache/camel/component/mock/MockEndpoint.java  |  5 +++++
 .../camel/component/mustache/MustacheEndpoint.java |  5 +++++
 .../apache/camel/component/mvel/MvelEndpoint.java  |  5 +++++
 .../apache/camel/component/pdf/PdfEndpoint.java    |  5 +++++
 .../camel/component/quartz/QuartzEndpoint.java     |  5 +++++
 .../reactive/streams/ReactiveStreamsEndpoint.java  | 11 +++++----
 .../apache/camel/component/ref/RefEndpoint.java    |  5 +++++
 .../camel/component/rest/RestApiEndpoint.java      |  5 +++++
 .../robotframework/RobotFrameworkEndpoint.java     |  5 +++++
 .../camel/component/xquery/XQueryEndpoint.java     |  5 +++++
 .../component/scheduler/SchedulerEndpoint.java     |  5 +++++
 .../component/schematron/SchematronEndpoint.java   |  5 +++++
 .../apache/camel/component/seda/SedaEndpoint.java  |  5 +++++
 .../spring/batch/SpringBatchEndpoint.java          |  5 +++++
 .../camel/component/event/EventEndpoint.java       |  5 +++++
 .../apache/camel/component/stax/StAXEndpoint.java  |  5 +++++
 .../stringtemplate/StringTemplateEndpoint.java     |  5 +++++
 .../apache/camel/component/stub/StubEndpoint.java  |  5 +++++
 .../component/thymeleaf/ThymeleafEndpoint.java     |  5 +++++
 .../apache/camel/component/tika/TikaEndpoint.java  |  5 +++++
 .../camel/component/timer/TimerEndpoint.java       |  5 +++++
 .../component/validator/ValidatorEndpoint.java     |  5 +++++
 .../camel/component/velocity/VelocityEndpoint.java |  5 +++++
 .../apache/camel/component/wasm/WasmEndpoint.java  | 26 +++++++---------------
 .../org/apache/camel/component/xj/XJEndpoint.java  |  5 +++++
 .../component/xmlsecurity/XmlSignerEndpoint.java   |  5 +++++
 .../component/xmlsecurity/XmlVerifierEndpoint.java |  5 +++++
 .../component/xslt/saxon/XsltSaxonEndpoint.java    |  5 +++++
 .../apache/camel/component/xslt/XsltEndpoint.java  |  5 +++++
 .../src/main/java/org/apache/camel/Endpoint.java   | 10 ++++++++-
 .../camel/impl/console/EndpointDevConsole.java     |  1 +
 .../api/management/mbean/ManagedEndpointMBean.java |  3 +++
 .../camel/management/mbean/ManagedEndpoint.java    |  5 +++++
 .../camel/management/ManagedEndpointTest.java      |  5 +++++
 .../jbang/core/commands/process/ListEndpoint.java  |  3 +++
 71 files changed, 357 insertions(+), 33 deletions(-)

diff --git 
a/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/DJLEndpoint.java
 
b/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/DJLEndpoint.java
index 7237640053d..7e69a172a91 100644
--- 
a/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/DJLEndpoint.java
+++ 
b/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/DJLEndpoint.java
@@ -48,6 +48,11 @@ public class DJLEndpoint extends DefaultEndpoint {
         this.application = application;
     }
 
+    @Override
+    public boolean isRemote() {
+        return false;
+    }
+
     public Producer createProducer() throws Exception {
         return new DJLProducer(this);
     }
diff --git 
a/components/camel-bean-validator/src/main/java/org/apache/camel/component/bean/validator/BeanValidatorEndpoint.java
 
b/components/camel-bean-validator/src/main/java/org/apache/camel/component/bean/validator/BeanValidatorEndpoint.java
index 6759e3934da..641fa9e14d6 100644
--- 
a/components/camel-bean-validator/src/main/java/org/apache/camel/component/bean/validator/BeanValidatorEndpoint.java
+++ 
b/components/camel-bean-validator/src/main/java/org/apache/camel/component/bean/validator/BeanValidatorEndpoint.java
@@ -66,6 +66,11 @@ public class BeanValidatorEndpoint extends DefaultEndpoint {
         super(endpointUri, component);
     }
 
+    @Override
+    public boolean isRemote() {
+        return false;
+    }
+
     @Override
     public Producer createProducer() throws Exception {
         BeanValidatorProducer producer = new BeanValidatorProducer(this);
diff --git 
a/components/camel-bean/src/main/java/org/apache/camel/component/bean/BeanEndpoint.java
 
b/components/camel-bean/src/main/java/org/apache/camel/component/bean/BeanEndpoint.java
index ad9dce5e10d..eef1c278bc2 100644
--- 
a/components/camel-bean/src/main/java/org/apache/camel/component/bean/BeanEndpoint.java
+++ 
b/components/camel-bean/src/main/java/org/apache/camel/component/bean/BeanEndpoint.java
@@ -73,6 +73,11 @@ public class BeanEndpoint extends DefaultEndpoint {
         setExchangePattern(ExchangePattern.InOut);
     }
 
+    @Override
+    public boolean isRemote() {
+        return false;
+    }
+
     @Override
     public Producer createProducer() throws Exception {
         return new BeanProducer(this, processor);
diff --git 
a/components/camel-browse/src/main/java/org/apache/camel/component/browse/BrowseEndpoint.java
 
b/components/camel-browse/src/main/java/org/apache/camel/component/browse/BrowseEndpoint.java
index 7b867fcfee6..a19f0ce5d25 100644
--- 
a/components/camel-browse/src/main/java/org/apache/camel/component/browse/BrowseEndpoint.java
+++ 
b/components/camel-browse/src/main/java/org/apache/camel/component/browse/BrowseEndpoint.java
@@ -57,6 +57,11 @@ public class BrowseEndpoint extends DefaultEndpoint 
implements BrowsableEndpoint
         super(uri, component);
     }
 
+    @Override
+    public boolean isRemote() {
+        return false;
+    }
+
     @Override
     public List<Exchange> getExchanges() {
         if (exchanges == null) {
diff --git 
a/components/camel-caffeine/src/main/java/org/apache/camel/component/caffeine/cache/CaffeineCacheEndpoint.java
 
b/components/camel-caffeine/src/main/java/org/apache/camel/component/caffeine/cache/CaffeineCacheEndpoint.java
index e31b449511e..38da56f487f 100644
--- 
a/components/camel-caffeine/src/main/java/org/apache/camel/component/caffeine/cache/CaffeineCacheEndpoint.java
+++ 
b/components/camel-caffeine/src/main/java/org/apache/camel/component/caffeine/cache/CaffeineCacheEndpoint.java
@@ -47,12 +47,17 @@ public class CaffeineCacheEndpoint extends DefaultEndpoint {
 
     private volatile Cache<?, ?> cache;
 
-    CaffeineCacheEndpoint(String uri, Component component, String cacheName, 
CaffeineConfiguration configuration) {
+    public CaffeineCacheEndpoint(String uri, Component component, String 
cacheName, CaffeineConfiguration configuration) {
         super(uri, component);
         this.cacheName = cacheName;
         this.configuration = configuration;
     }
 
+    @Override
+    public boolean isRemote() {
+        return false;
+    }
+
     @Override
     public CaffeineCacheComponent getComponent() {
         return (CaffeineCacheComponent) super.getComponent();
diff --git 
a/components/camel-caffeine/src/main/java/org/apache/camel/component/caffeine/load/CaffeineLoadCacheEndpoint.java
 
b/components/camel-caffeine/src/main/java/org/apache/camel/component/caffeine/load/CaffeineLoadCacheEndpoint.java
index c0513d00730..fb8c4acde8c 100644
--- 
a/components/camel-caffeine/src/main/java/org/apache/camel/component/caffeine/load/CaffeineLoadCacheEndpoint.java
+++ 
b/components/camel-caffeine/src/main/java/org/apache/camel/component/caffeine/load/CaffeineLoadCacheEndpoint.java
@@ -46,12 +46,17 @@ public class CaffeineLoadCacheEndpoint extends 
DefaultEndpoint {
 
     private volatile LoadingCache<?, ?> cache;
 
-    CaffeineLoadCacheEndpoint(String uri, Component component, String 
cacheName, CaffeineConfiguration configuration) {
+    public CaffeineLoadCacheEndpoint(String uri, Component component, String 
cacheName, CaffeineConfiguration configuration) {
         super(uri, component);
         this.cacheName = cacheName;
         this.configuration = configuration;
     }
 
+    @Override
+    public boolean isRemote() {
+        return false;
+    }
+
     @Override
     public CaffeineLoadCacheComponent getComponent() {
         return (CaffeineLoadCacheComponent) super.getComponent();
diff --git 
a/components/camel-chunk/src/main/java/org/apache/camel/component/chunk/ChunkEndpoint.java
 
b/components/camel-chunk/src/main/java/org/apache/camel/component/chunk/ChunkEndpoint.java
index b53b6850513..0cc9eb86e89 100644
--- 
a/components/camel-chunk/src/main/java/org/apache/camel/component/chunk/ChunkEndpoint.java
+++ 
b/components/camel-chunk/src/main/java/org/apache/camel/component/chunk/ChunkEndpoint.java
@@ -52,19 +52,14 @@ public class ChunkEndpoint extends ResourceEndpoint {
 
     @UriParam(defaultValue = "false")
     private boolean allowTemplateFromHeader;
-
     @UriParam(description = "Define the encoding of the body")
     private String encoding;
-
     @UriParam(description = "Define the themes folder to scan")
     private String themeFolder;
-
     @UriParam(description = "Define the themes subfolder to scan")
     private String themeSubfolder;
-
     @UriParam(description = "Define the theme layer to elaborate")
     private String themeLayer;
-
     @UriParam(description = "Define the file extension of the template")
     private String extension;
 
@@ -75,6 +70,11 @@ public class ChunkEndpoint extends ResourceEndpoint {
         super(endpointUri, component, resourceUri);
     }
 
+    @Override
+    public boolean isRemote() {
+        return false;
+    }
+
     @Override
     public ExchangePattern getExchangePattern() {
         return ExchangePattern.InOut;
diff --git 
a/components/camel-controlbus/src/main/java/org/apache/camel/component/controlbus/ControlBusEndpoint.java
 
b/components/camel-controlbus/src/main/java/org/apache/camel/component/controlbus/ControlBusEndpoint.java
index eebcbb484c6..0a3d5a04c12 100644
--- 
a/components/camel-controlbus/src/main/java/org/apache/camel/component/controlbus/ControlBusEndpoint.java
+++ 
b/components/camel-controlbus/src/main/java/org/apache/camel/component/controlbus/ControlBusEndpoint.java
@@ -63,6 +63,11 @@ public class ControlBusEndpoint extends DefaultEndpoint {
         super(endpointUri, component);
     }
 
+    @Override
+    public boolean isRemote() {
+        return false;
+    }
+
     @Override
     protected void doInit() throws Exception {
         this.logger = new CamelLogger(ControlBusProducer.class.getName(), 
loggingLevel);
diff --git 
a/components/camel-cron/src/main/java/org/apache/camel/component/cron/CronEndpoint.java
 
b/components/camel-cron/src/main/java/org/apache/camel/component/cron/CronEndpoint.java
index b95c167a852..b67ea6348f8 100644
--- 
a/components/camel-cron/src/main/java/org/apache/camel/component/cron/CronEndpoint.java
+++ 
b/components/camel-cron/src/main/java/org/apache/camel/component/cron/CronEndpoint.java
@@ -46,6 +46,11 @@ public class CronEndpoint extends DefaultEndpoint implements 
DelegateEndpoint {
         this.configuration = configuration;
     }
 
+    @Override
+    public boolean isRemote() {
+        return false;
+    }
+
     public void setDelegate(Endpoint delegate) {
         this.delegate = delegate;
     }
diff --git 
a/components/camel-crypto/src/main/java/org/apache/camel/component/crypto/DigitalSignatureEndpoint.java
 
b/components/camel-crypto/src/main/java/org/apache/camel/component/crypto/DigitalSignatureEndpoint.java
index a2b85580d24..a4e85340ba8 100644
--- 
a/components/camel-crypto/src/main/java/org/apache/camel/component/crypto/DigitalSignatureEndpoint.java
+++ 
b/components/camel-crypto/src/main/java/org/apache/camel/component/crypto/DigitalSignatureEndpoint.java
@@ -48,6 +48,11 @@ public class DigitalSignatureEndpoint extends 
DefaultEndpoint {
         this.configuration = configuration;
     }
 
+    @Override
+    public boolean isRemote() {
+        return false;
+    }
+
     @Override
     public Producer createProducer() throws Exception {
         if (CryptoOperation.sign == configuration.getCryptoOperation()) {
diff --git 
a/components/camel-dataformat/src/main/java/org/apache/camel/component/dataformat/DataFormatEndpoint.java
 
b/components/camel-dataformat/src/main/java/org/apache/camel/component/dataformat/DataFormatEndpoint.java
index 60f40a8deea..45d03fc6f3b 100644
--- 
a/components/camel-dataformat/src/main/java/org/apache/camel/component/dataformat/DataFormatEndpoint.java
+++ 
b/components/camel-dataformat/src/main/java/org/apache/camel/component/dataformat/DataFormatEndpoint.java
@@ -60,6 +60,11 @@ public class DataFormatEndpoint extends DefaultEndpoint {
         this.dataFormat = dataFormat;
     }
 
+    @Override
+    public boolean isRemote() {
+        return false;
+    }
+
     public String getName() {
         return name;
     }
diff --git 
a/components/camel-dataset/src/main/java/org/apache/camel/component/dataset/DataSetEndpoint.java
 
b/components/camel-dataset/src/main/java/org/apache/camel/component/dataset/DataSetEndpoint.java
index e1d43813377..f05140e174d 100644
--- 
a/components/camel-dataset/src/main/java/org/apache/camel/component/dataset/DataSetEndpoint.java
+++ 
b/components/camel-dataset/src/main/java/org/apache/camel/component/dataset/DataSetEndpoint.java
@@ -75,6 +75,11 @@ public class DataSetEndpoint extends MockEndpoint implements 
Service {
         setCopyOnExchange(false);
     }
 
+    @Override
+    public boolean isRemote() {
+        return false;
+    }
+
     public static void assertEquals(String description, Object expected, 
Object actual, Exchange exchange) {
         if (!ObjectHelper.equal(expected, actual)) {
             throw new AssertionError(
diff --git 
a/components/camel-dataset/src/main/java/org/apache/camel/component/dataset/DataSetTestEndpoint.java
 
b/components/camel-dataset/src/main/java/org/apache/camel/component/dataset/DataSetTestEndpoint.java
index 71ebfbaa964..e14fc3a4b29 100644
--- 
a/components/camel-dataset/src/main/java/org/apache/camel/component/dataset/DataSetTestEndpoint.java
+++ 
b/components/camel-dataset/src/main/java/org/apache/camel/component/dataset/DataSetTestEndpoint.java
@@ -68,6 +68,11 @@ public class DataSetTestEndpoint extends MockEndpoint {
         super(endpointUri, component);
     }
 
+    @Override
+    public boolean isRemote() {
+        return false;
+    }
+
     public void setExpectedMessageEndpoint(Endpoint expectedMessageEndpoint) {
         this.expectedMessageEndpoint = expectedMessageEndpoint;
     }
diff --git 
a/components/camel-direct/src/main/java/org/apache/camel/component/direct/DirectEndpoint.java
 
b/components/camel-direct/src/main/java/org/apache/camel/component/direct/DirectEndpoint.java
index 274884601ec..f3ea03e133c 100644
--- 
a/components/camel-direct/src/main/java/org/apache/camel/component/direct/DirectEndpoint.java
+++ 
b/components/camel-direct/src/main/java/org/apache/camel/component/direct/DirectEndpoint.java
@@ -59,6 +59,11 @@ public class DirectEndpoint extends DefaultEndpoint {
         this.key = StringHelper.before(uri, "?", uri);
     }
 
+    @Override
+    public boolean isRemote() {
+        return false;
+    }
+
     @Override
     public Producer createProducer() throws Exception {
         return new DirectProducer(this, key);
diff --git 
a/components/camel-disruptor/src/main/java/org/apache/camel/component/disruptor/DisruptorEndpoint.java
 
b/components/camel-disruptor/src/main/java/org/apache/camel/component/disruptor/DisruptorEndpoint.java
index 68ad5fdf85c..0c414646ab7 100644
--- 
a/components/camel-disruptor/src/main/java/org/apache/camel/component/disruptor/DisruptorEndpoint.java
+++ 
b/components/camel-disruptor/src/main/java/org/apache/camel/component/disruptor/DisruptorEndpoint.java
@@ -87,6 +87,11 @@ public class DisruptorEndpoint extends DefaultEndpoint 
implements AsyncEndpoint,
         this.name = disruptorReference.getName();
     }
 
+    @Override
+    public boolean isRemote() {
+        return false;
+    }
+
     @ManagedAttribute(description = "Queue name")
     public String getName() {
         return name;
diff --git 
a/components/camel-dynamic-router/src/main/java/org/apache/camel/component/dynamicrouter/control/DynamicRouterControlEndpoint.java
 
b/components/camel-dynamic-router/src/main/java/org/apache/camel/component/dynamicrouter/control/DynamicRouterControlEndpoint.java
index 6fb009cbcb0..71c3ca37293 100644
--- 
a/components/camel-dynamic-router/src/main/java/org/apache/camel/component/dynamicrouter/control/DynamicRouterControlEndpoint.java
+++ 
b/components/camel-dynamic-router/src/main/java/org/apache/camel/component/dynamicrouter/control/DynamicRouterControlEndpoint.java
@@ -133,6 +133,11 @@ public class DynamicRouterControlEndpoint extends 
DefaultEndpoint {
         this.controlServiceFactorySupplier = CONTROL_SERVICE_FACTORY_SUPPLIER;
     }
 
+    @Override
+    public boolean isRemote() {
+        return false;
+    }
+
     /**
      * Starts the component, and creates the {@link 
DynamicRouterControlService} and adds it to the
      * {@link CamelContext}.
diff --git 
a/components/camel-dynamic-router/src/main/java/org/apache/camel/component/dynamicrouter/routing/DynamicRouterEndpoint.java
 
b/components/camel-dynamic-router/src/main/java/org/apache/camel/component/dynamicrouter/routing/DynamicRouterEndpoint.java
index 202ac9fef77..3546dd6bccc 100644
--- 
a/components/camel-dynamic-router/src/main/java/org/apache/camel/component/dynamicrouter/routing/DynamicRouterEndpoint.java
+++ 
b/components/camel-dynamic-router/src/main/java/org/apache/camel/component/dynamicrouter/routing/DynamicRouterEndpoint.java
@@ -144,6 +144,11 @@ public class DynamicRouterEndpoint extends DefaultEndpoint 
{
         LOG.debug("Created Dynamic Router Control Channel endpoint URI: {}", 
uri);
     }
 
+    @Override
+    public boolean isRemote() {
+        return false;
+    }
+
     /**
      * Initialize the endpoint by creating (and adding) the {@link 
DynamicRouterProcessor} instance.
      *
diff --git 
a/components/camel-exec/src/main/java/org/apache/camel/component/exec/ExecEndpoint.java
 
b/components/camel-exec/src/main/java/org/apache/camel/component/exec/ExecEndpoint.java
index 6ed1991b13c..8f2ddfebe9e 100644
--- 
a/components/camel-exec/src/main/java/org/apache/camel/component/exec/ExecEndpoint.java
+++ 
b/components/camel-exec/src/main/java/org/apache/camel/component/exec/ExecEndpoint.java
@@ -70,6 +70,11 @@ public class ExecEndpoint extends DefaultEndpoint {
         this.binding = new DefaultExecBinding();
     }
 
+    @Override
+    public boolean isRemote() {
+        return false;
+    }
+
     @Override
     public Producer createProducer() throws Exception {
         return new ExecProducer(this);
diff --git 
a/components/camel-flatpack/src/main/java/org/apache/camel/component/flatpack/FlatpackEndpoint.java
 
b/components/camel-flatpack/src/main/java/org/apache/camel/component/flatpack/FlatpackEndpoint.java
index 1009e4bdae6..1190da4476b 100644
--- 
a/components/camel-flatpack/src/main/java/org/apache/camel/component/flatpack/FlatpackEndpoint.java
+++ 
b/components/camel-flatpack/src/main/java/org/apache/camel/component/flatpack/FlatpackEndpoint.java
@@ -85,6 +85,11 @@ public class FlatpackEndpoint extends DefaultPollingEndpoint 
{
         this.resourceUri = resourceUri;
     }
 
+    @Override
+    public boolean isRemote() {
+        return false;
+    }
+
     @Override
     public Producer createProducer() throws Exception {
         return new FlatpackProducer(this);
diff --git 
a/components/camel-fop/src/main/java/org/apache/camel/component/fop/FopEndpoint.java
 
b/components/camel-fop/src/main/java/org/apache/camel/component/fop/FopEndpoint.java
index 70c7ac75125..420c8eec7c3 100644
--- 
a/components/camel-fop/src/main/java/org/apache/camel/component/fop/FopEndpoint.java
+++ 
b/components/camel-fop/src/main/java/org/apache/camel/component/fop/FopEndpoint.java
@@ -52,6 +52,11 @@ public class FopEndpoint extends DefaultEndpoint {
         this.outputType = outputType;
     }
 
+    @Override
+    public boolean isRemote() {
+        return false;
+    }
+
     @Override
     public Producer createProducer() throws Exception {
         return new FopProducer(this, fopFactory, 
outputType.getFormatExtended());
diff --git 
a/components/camel-freemarker/src/main/java/org/apache/camel/component/freemarker/FreemarkerEndpoint.java
 
b/components/camel-freemarker/src/main/java/org/apache/camel/component/freemarker/FreemarkerEndpoint.java
index 12c30df4491..509622be157 100644
--- 
a/components/camel-freemarker/src/main/java/org/apache/camel/component/freemarker/FreemarkerEndpoint.java
+++ 
b/components/camel-freemarker/src/main/java/org/apache/camel/component/freemarker/FreemarkerEndpoint.java
@@ -56,6 +56,11 @@ public class FreemarkerEndpoint extends ResourceEndpoint {
         super(uri, component, resourceUri);
     }
 
+    @Override
+    public boolean isRemote() {
+        return false;
+    }
+
     @Override
     public ExchangePattern getExchangePattern() {
         return ExchangePattern.InOut;
diff --git 
a/components/camel-grape/src/main/java/org/apache/camel/component/grape/GrapeEndpoint.java
 
b/components/camel-grape/src/main/java/org/apache/camel/component/grape/GrapeEndpoint.java
index 1403ef3573b..870bda42837 100644
--- 
a/components/camel-grape/src/main/java/org/apache/camel/component/grape/GrapeEndpoint.java
+++ 
b/components/camel-grape/src/main/java/org/apache/camel/component/grape/GrapeEndpoint.java
@@ -70,6 +70,11 @@ public class GrapeEndpoint extends DefaultEndpoint {
         });
     }
 
+    @Override
+    public boolean isRemote() {
+        return false;
+    }
+
     @Override
     public Producer createProducer() {
         return new GrapeProducer(this);
diff --git 
a/components/camel-guava-eventbus/src/main/java/org/apache/camel/component/guava/eventbus/GuavaEventBusEndpoint.java
 
b/components/camel-guava-eventbus/src/main/java/org/apache/camel/component/guava/eventbus/GuavaEventBusEndpoint.java
index 7ed5bd66cc9..3ea56e27108 100644
--- 
a/components/camel-guava-eventbus/src/main/java/org/apache/camel/component/guava/eventbus/GuavaEventBusEndpoint.java
+++ 
b/components/camel-guava-eventbus/src/main/java/org/apache/camel/component/guava/eventbus/GuavaEventBusEndpoint.java
@@ -51,6 +51,11 @@ public class GuavaEventBusEndpoint extends DefaultEndpoint 
implements MultipleCo
         this.listenerInterface = listenerInterface;
     }
 
+    @Override
+    public boolean isRemote() {
+        return false;
+    }
+
     @Override
     public Producer createProducer() throws Exception {
         return new GuavaEventBusProducer(this, eventBus);
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 d9dee42a4a5..b7489c37be5 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
@@ -255,6 +255,11 @@ public class JMXEndpoint extends DefaultEndpoint 
implements EndpointServiceLocat
         super(aEndpointUri, aComponent);
     }
 
+    @Override
+    public boolean isRemote() {
+        return false;
+    }
+
     @Override
     public String getServiceUrl() {
         return serverURL;
diff --git 
a/components/camel-jolt/src/main/java/org/apache/camel/component/jolt/JoltEndpoint.java
 
b/components/camel-jolt/src/main/java/org/apache/camel/component/jolt/JoltEndpoint.java
index 0f746c2681d..a9981fa385c 100644
--- 
a/components/camel-jolt/src/main/java/org/apache/camel/component/jolt/JoltEndpoint.java
+++ 
b/components/camel-jolt/src/main/java/org/apache/camel/component/jolt/JoltEndpoint.java
@@ -67,6 +67,11 @@ public class JoltEndpoint extends ResourceEndpoint {
         super(uri, component, resourceUri);
     }
 
+    @Override
+    public boolean isRemote() {
+        return false;
+    }
+
     @Override
     public ExchangePattern getExchangePattern() {
         return ExchangePattern.InOut;
diff --git 
a/components/camel-jslt/src/main/java/org/apache/camel/component/jslt/JsltEndpoint.java
 
b/components/camel-jslt/src/main/java/org/apache/camel/component/jslt/JsltEndpoint.java
index c5b38521235..d77208f267c 100644
--- 
a/components/camel-jslt/src/main/java/org/apache/camel/component/jslt/JsltEndpoint.java
+++ 
b/components/camel-jslt/src/main/java/org/apache/camel/component/jslt/JsltEndpoint.java
@@ -92,6 +92,11 @@ public class JsltEndpoint extends ResourceEndpoint {
         super(uri, component, resourceUri);
     }
 
+    @Override
+    public boolean isRemote() {
+        return false;
+    }
+
     @Override
     public ExchangePattern getExchangePattern() {
         return ExchangePattern.InOut;
diff --git 
a/components/camel-json-patch/src/main/java/org/apache/camel/component/jsonpatch/JsonPatchEndpoint.java
 
b/components/camel-json-patch/src/main/java/org/apache/camel/component/jsonpatch/JsonPatchEndpoint.java
index c8c9be6a8a9..b1ad062a191 100644
--- 
a/components/camel-json-patch/src/main/java/org/apache/camel/component/jsonpatch/JsonPatchEndpoint.java
+++ 
b/components/camel-json-patch/src/main/java/org/apache/camel/component/jsonpatch/JsonPatchEndpoint.java
@@ -39,6 +39,11 @@ public class JsonPatchEndpoint extends ResourceEndpoint {
         super(uri, component, resourceUri);
     }
 
+    @Override
+    public boolean isRemote() {
+        return false;
+    }
+
     @Override
     public ExchangePattern getExchangePattern() {
         return ExchangePattern.InOut;
diff --git 
a/components/camel-json-validator/src/main/java/org/apache/camel/component/jsonvalidator/JsonValidatorEndpoint.java
 
b/components/camel-json-validator/src/main/java/org/apache/camel/component/jsonvalidator/JsonValidatorEndpoint.java
index d6c035f6744..54306bc73e0 100644
--- 
a/components/camel-json-validator/src/main/java/org/apache/camel/component/jsonvalidator/JsonValidatorEndpoint.java
+++ 
b/components/camel-json-validator/src/main/java/org/apache/camel/component/jsonvalidator/JsonValidatorEndpoint.java
@@ -71,6 +71,11 @@ public class JsonValidatorEndpoint extends ResourceEndpoint {
         super(endpointUri, component, resourceUri);
     }
 
+    @Override
+    public boolean isRemote() {
+        return false;
+    }
+
     @Override
     public void clearContentCache() {
         this.schema = null;
diff --git 
a/components/camel-jsonata/src/main/java/org/apache/camel/component/jsonata/JsonataEndpoint.java
 
b/components/camel-jsonata/src/main/java/org/apache/camel/component/jsonata/JsonataEndpoint.java
index 50d11c69870..6fb1647217c 100644
--- 
a/components/camel-jsonata/src/main/java/org/apache/camel/component/jsonata/JsonataEndpoint.java
+++ 
b/components/camel-jsonata/src/main/java/org/apache/camel/component/jsonata/JsonataEndpoint.java
@@ -60,6 +60,11 @@ public class JsonataEndpoint extends ResourceEndpoint {
         super(uri, component, resourceUri);
     }
 
+    @Override
+    public boolean isRemote() {
+        return false;
+    }
+
     @Override
     public ExchangePattern getExchangePattern() {
         return ExchangePattern.InOut;
diff --git 
a/components/camel-jte/src/main/java/org/apache/camel/component/jte/JteEndpoint.java
 
b/components/camel-jte/src/main/java/org/apache/camel/component/jte/JteEndpoint.java
index bb059b500c1..2338a41db0a 100644
--- 
a/components/camel-jte/src/main/java/org/apache/camel/component/jte/JteEndpoint.java
+++ 
b/components/camel-jte/src/main/java/org/apache/camel/component/jte/JteEndpoint.java
@@ -45,6 +45,11 @@ public class JteEndpoint extends ResourceEndpoint {
         super(endpointUri, component, resourceUri);
     }
 
+    @Override
+    public boolean isRemote() {
+        return false;
+    }
+
     @Override
     public JteComponent getComponent() {
         return (JteComponent) super.getComponent();
diff --git 
a/components/camel-language/src/main/java/org/apache/camel/component/language/LanguageEndpoint.java
 
b/components/camel-language/src/main/java/org/apache/camel/component/language/LanguageEndpoint.java
index 22adc8a1dca..90c6d25a91d 100644
--- 
a/components/camel-language/src/main/java/org/apache/camel/component/language/LanguageEndpoint.java
+++ 
b/components/camel-language/src/main/java/org/apache/camel/component/language/LanguageEndpoint.java
@@ -89,6 +89,11 @@ public class LanguageEndpoint extends ResourceEndpoint {
         setContentCache(true);
     }
 
+    @Override
+    public boolean isRemote() {
+        return false;
+    }
+
     @Override
     protected void doInit() throws Exception {
         if (language == null && languageName != null) {
diff --git 
a/components/camel-log/src/main/java/org/apache/camel/component/log/LogEndpoint.java
 
b/components/camel-log/src/main/java/org/apache/camel/component/log/LogEndpoint.java
index efc379f494f..3217c63b083 100644
--- 
a/components/camel-log/src/main/java/org/apache/camel/component/log/LogEndpoint.java
+++ 
b/components/camel-log/src/main/java/org/apache/camel/component/log/LogEndpoint.java
@@ -147,6 +147,11 @@ public class LogEndpoint extends ProcessorEndpoint 
implements LineNumberAware {
         setLogger(logger);
     }
 
+    @Override
+    public boolean isRemote() {
+        return false;
+    }
+
     @Override
     protected void doInit() throws Exception {
         super.doInit();
diff --git 
a/components/camel-lumberjack/src/main/java/org/apache/camel/component/lumberjack/LumberjackEndpoint.java
 
b/components/camel-lumberjack/src/main/java/org/apache/camel/component/lumberjack/LumberjackEndpoint.java
index f52c5f65de1..f1506680d05 100644
--- 
a/components/camel-lumberjack/src/main/java/org/apache/camel/component/lumberjack/LumberjackEndpoint.java
+++ 
b/components/camel-lumberjack/src/main/java/org/apache/camel/component/lumberjack/LumberjackEndpoint.java
@@ -46,12 +46,17 @@ public class LumberjackEndpoint extends DefaultEndpoint {
     @UriParam(description = "SSL configuration")
     private SSLContextParameters sslContextParameters;
 
-    LumberjackEndpoint(String endpointUri, LumberjackComponent component, 
String host, int port) {
+    public LumberjackEndpoint(String endpointUri, LumberjackComponent 
component, String host, int port) {
         super(endpointUri, component);
         this.host = host;
         this.port = port;
     }
 
+    @Override
+    public boolean isRemote() {
+        return false;
+    }
+
     @Override
     public LumberjackComponent getComponent() {
         return (LumberjackComponent) super.getComponent();
diff --git 
a/components/camel-mapstruct/src/main/java/org/apache/camel/component/mapstruct/MapstructEndpoint.java
 
b/components/camel-mapstruct/src/main/java/org/apache/camel/component/mapstruct/MapstructEndpoint.java
index 754a114fcd6..3c0fdb169ef 100644
--- 
a/components/camel-mapstruct/src/main/java/org/apache/camel/component/mapstruct/MapstructEndpoint.java
+++ 
b/components/camel-mapstruct/src/main/java/org/apache/camel/component/mapstruct/MapstructEndpoint.java
@@ -44,6 +44,11 @@ public class MapstructEndpoint extends DefaultEndpoint {
         super(endpointUri, component);
     }
 
+    @Override
+    public boolean isRemote() {
+        return false;
+    }
+
     @Override
     public Producer createProducer() throws Exception {
         return new MapstructProducer(this, clazz, mandatory);
diff --git 
a/components/camel-metrics/src/main/java/org/apache/camel/component/metrics/MetricsEndpoint.java
 
b/components/camel-metrics/src/main/java/org/apache/camel/component/metrics/MetricsEndpoint.java
index 3fb12191f14..baef8973824 100644
--- 
a/components/camel-metrics/src/main/java/org/apache/camel/component/metrics/MetricsEndpoint.java
+++ 
b/components/camel-metrics/src/main/java/org/apache/camel/component/metrics/MetricsEndpoint.java
@@ -65,6 +65,11 @@ public class MetricsEndpoint extends DefaultEndpoint {
         this.metricsName = metricsName;
     }
 
+    @Override
+    public boolean isRemote() {
+        return false;
+    }
+
     @Override
     public Consumer createConsumer(Processor processor) throws Exception {
         throw new RuntimeCamelException("Cannot consume from " + 
getClass().getSimpleName() + ": " + getEndpointUri());
diff --git 
a/components/camel-micrometer/src/main/java/org/apache/camel/component/micrometer/MicrometerEndpoint.java
 
b/components/camel-micrometer/src/main/java/org/apache/camel/component/micrometer/MicrometerEndpoint.java
index 7aeb4f3825d..59bffdde62d 100644
--- 
a/components/camel-micrometer/src/main/java/org/apache/camel/component/micrometer/MicrometerEndpoint.java
+++ 
b/components/camel-micrometer/src/main/java/org/apache/camel/component/micrometer/MicrometerEndpoint.java
@@ -69,6 +69,11 @@ public class MicrometerEndpoint extends DefaultEndpoint {
         this.tags = tags;
     }
 
+    @Override
+    public boolean isRemote() {
+        return false;
+    }
+
     @Override
     public Consumer createConsumer(Processor processor) {
         throw new UnsupportedOperationException("Consumer not supported");
diff --git 
a/components/camel-mock/src/main/java/org/apache/camel/component/mock/MockEndpoint.java
 
b/components/camel-mock/src/main/java/org/apache/camel/component/mock/MockEndpoint.java
index 4caf337da71..c8f638fb6ee 100644
--- 
a/components/camel-mock/src/main/java/org/apache/camel/component/mock/MockEndpoint.java
+++ 
b/components/camel-mock/src/main/java/org/apache/camel/component/mock/MockEndpoint.java
@@ -155,6 +155,11 @@ public class MockEndpoint extends DefaultEndpoint 
implements BrowsableEndpoint,
         reset();
     }
 
+    @Override
+    public boolean isRemote() {
+        return false;
+    }
+
     /**
      * A helper method to resolve the mock endpoint of the given URI on the 
given context
      *
diff --git 
a/components/camel-mustache/src/main/java/org/apache/camel/component/mustache/MustacheEndpoint.java
 
b/components/camel-mustache/src/main/java/org/apache/camel/component/mustache/MustacheEndpoint.java
index 8d226570326..9038f60deeb 100644
--- 
a/components/camel-mustache/src/main/java/org/apache/camel/component/mustache/MustacheEndpoint.java
+++ 
b/components/camel-mustache/src/main/java/org/apache/camel/component/mustache/MustacheEndpoint.java
@@ -66,6 +66,11 @@ public class MustacheEndpoint extends ResourceEndpoint {
         super(endpointUri, component, resourceUri);
     }
 
+    @Override
+    public boolean isRemote() {
+        return false;
+    }
+
     @Override
     public ExchangePattern getExchangePattern() {
         return ExchangePattern.InOut;
diff --git 
a/components/camel-mvel/src/main/java/org/apache/camel/component/mvel/MvelEndpoint.java
 
b/components/camel-mvel/src/main/java/org/apache/camel/component/mvel/MvelEndpoint.java
index ad02eb973af..73a054cadae 100644
--- 
a/components/camel-mvel/src/main/java/org/apache/camel/component/mvel/MvelEndpoint.java
+++ 
b/components/camel-mvel/src/main/java/org/apache/camel/component/mvel/MvelEndpoint.java
@@ -53,6 +53,11 @@ public class MvelEndpoint extends ResourceEndpoint {
         super(uri, component, resourceUri);
     }
 
+    @Override
+    public boolean isRemote() {
+        return false;
+    }
+
     @Override
     public ExchangePattern getExchangePattern() {
         return ExchangePattern.InOut;
diff --git 
a/components/camel-pdf/src/main/java/org/apache/camel/component/pdf/PdfEndpoint.java
 
b/components/camel-pdf/src/main/java/org/apache/camel/component/pdf/PdfEndpoint.java
index 0182792cdcd..5310e999665 100644
--- 
a/components/camel-pdf/src/main/java/org/apache/camel/component/pdf/PdfEndpoint.java
+++ 
b/components/camel-pdf/src/main/java/org/apache/camel/component/pdf/PdfEndpoint.java
@@ -41,6 +41,11 @@ public class PdfEndpoint extends DefaultEndpoint {
         this.pdfConfiguration = pdfConfiguration;
     }
 
+    @Override
+    public boolean isRemote() {
+        return false;
+    }
+
     @Override
     public Producer createProducer() throws Exception {
         return new PdfProducer(this);
diff --git 
a/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/QuartzEndpoint.java
 
b/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/QuartzEndpoint.java
index ee4a37b4405..1f6fb8cb3fe 100644
--- 
a/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/QuartzEndpoint.java
+++ 
b/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/QuartzEndpoint.java
@@ -112,6 +112,11 @@ public class QuartzEndpoint extends DefaultEndpoint {
         super(uri, quartzComponent);
     }
 
+    @Override
+    public boolean isRemote() {
+        return false;
+    }
+
     public String getGroupName() {
         return triggerKey.getGroup();
     }
diff --git 
a/components/camel-reactive-streams/src/main/java/org/apache/camel/component/reactive/streams/ReactiveStreamsEndpoint.java
 
b/components/camel-reactive-streams/src/main/java/org/apache/camel/component/reactive/streams/ReactiveStreamsEndpoint.java
index 1435d75603e..b46b599252e 100644
--- 
a/components/camel-reactive-streams/src/main/java/org/apache/camel/component/reactive/streams/ReactiveStreamsEndpoint.java
+++ 
b/components/camel-reactive-streams/src/main/java/org/apache/camel/component/reactive/streams/ReactiveStreamsEndpoint.java
@@ -39,22 +39,16 @@ public class ReactiveStreamsEndpoint extends 
DefaultEndpoint {
 
     @UriPath
     private String stream;
-
     @UriParam(label = "consumer", defaultValue = "128")
     private Integer maxInflightExchanges = 128;
-
     @UriParam(label = "consumer", defaultValue = "0.25")
     private double exchangesRefillLowWatermark = 0.25;
-
     @UriParam(label = "consumer", defaultValue = "1")
     private int concurrentConsumers = 1;
-
     @UriParam(label = "consumer", defaultValue = "false")
     private boolean forwardOnComplete;
-
     @UriParam(label = "consumer", defaultValue = "false")
     private boolean forwardOnError;
-
     @UriParam(label = "producer")
     private ReactiveStreamsBackpressureStrategy backpressureStrategy;
 
@@ -62,6 +56,11 @@ public class ReactiveStreamsEndpoint extends DefaultEndpoint 
{
         super(endpointUri, component);
     }
 
+    @Override
+    public boolean isRemote() {
+        return false;
+    }
+
     @Override
     public Producer createProducer() throws Exception {
         return new ReactiveStreamsProducer(this, stream, 
getReactiveStreamsService());
diff --git 
a/components/camel-ref/src/main/java/org/apache/camel/component/ref/RefEndpoint.java
 
b/components/camel-ref/src/main/java/org/apache/camel/component/ref/RefEndpoint.java
index 38c71bf07f2..02844edda42 100644
--- 
a/components/camel-ref/src/main/java/org/apache/camel/component/ref/RefEndpoint.java
+++ 
b/components/camel-ref/src/main/java/org/apache/camel/component/ref/RefEndpoint.java
@@ -46,6 +46,11 @@ public class RefEndpoint extends DefaultEndpoint implements 
DelegateEndpoint {
         super(endpointUri, component);
     }
 
+    @Override
+    public boolean isRemote() {
+        return false;
+    }
+
     public String getName() {
         return name;
     }
diff --git 
a/components/camel-rest/src/main/java/org/apache/camel/component/rest/RestApiEndpoint.java
 
b/components/camel-rest/src/main/java/org/apache/camel/component/rest/RestApiEndpoint.java
index 07ed2ae3a68..ca80cdb8443 100644
--- 
a/components/camel-rest/src/main/java/org/apache/camel/component/rest/RestApiEndpoint.java
+++ 
b/components/camel-rest/src/main/java/org/apache/camel/component/rest/RestApiEndpoint.java
@@ -64,6 +64,11 @@ public class RestApiEndpoint extends DefaultEndpoint {
         setExchangePattern(ExchangePattern.InOut);
     }
 
+    @Override
+    public boolean isRemote() {
+        return false;
+    }
+
     @Override
     public RestApiComponent getComponent() {
         return (RestApiComponent) super.getComponent();
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 ef3b229c0dc..145ac145243 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
@@ -45,6 +45,11 @@ public class RobotFrameworkEndpoint extends ResourceEndpoint 
{
         this.configuration = configuration;
     }
 
+    @Override
+    public boolean isRemote() {
+        return false;
+    }
+
     @Override
     public ExchangePattern getExchangePattern() {
         return ExchangePattern.InOut;
diff --git 
a/components/camel-saxon/src/main/java/org/apache/camel/component/xquery/XQueryEndpoint.java
 
b/components/camel-saxon/src/main/java/org/apache/camel/component/xquery/XQueryEndpoint.java
index cce4fc33ffd..b6b007b2461 100644
--- 
a/components/camel-saxon/src/main/java/org/apache/camel/component/xquery/XQueryEndpoint.java
+++ 
b/components/camel-saxon/src/main/java/org/apache/camel/component/xquery/XQueryEndpoint.java
@@ -80,6 +80,11 @@ public class XQueryEndpoint extends ProcessorEndpoint {
         super(endpointUri, component);
     }
 
+    @Override
+    public boolean isRemote() {
+        return false;
+    }
+
     public String getResourceUri() {
         return resourceUri;
     }
diff --git 
a/components/camel-scheduler/src/main/java/org/apache/camel/component/scheduler/SchedulerEndpoint.java
 
b/components/camel-scheduler/src/main/java/org/apache/camel/component/scheduler/SchedulerEndpoint.java
index 7a958ae6483..54ab073da27 100644
--- 
a/components/camel-scheduler/src/main/java/org/apache/camel/component/scheduler/SchedulerEndpoint.java
+++ 
b/components/camel-scheduler/src/main/java/org/apache/camel/component/scheduler/SchedulerEndpoint.java
@@ -55,6 +55,11 @@ public class SchedulerEndpoint extends ScheduledPollEndpoint 
{
         this.name = remaining;
     }
 
+    @Override
+    public boolean isRemote() {
+        return false;
+    }
+
     @Override
     public SchedulerComponent getComponent() {
         return (SchedulerComponent) super.getComponent();
diff --git 
a/components/camel-schematron/src/main/java/org/apache/camel/component/schematron/SchematronEndpoint.java
 
b/components/camel-schematron/src/main/java/org/apache/camel/component/schematron/SchematronEndpoint.java
index 9bcd9651e58..4a339147b22 100644
--- 
a/components/camel-schematron/src/main/java/org/apache/camel/component/schematron/SchematronEndpoint.java
+++ 
b/components/camel-schematron/src/main/java/org/apache/camel/component/schematron/SchematronEndpoint.java
@@ -74,6 +74,11 @@ public class SchematronEndpoint extends DefaultEndpoint {
         this.path = path;
     }
 
+    @Override
+    public boolean isRemote() {
+        return false;
+    }
+
     @Override
     public Producer createProducer() throws Exception {
         return new SchematronProducer(this);
diff --git 
a/components/camel-seda/src/main/java/org/apache/camel/component/seda/SedaEndpoint.java
 
b/components/camel-seda/src/main/java/org/apache/camel/component/seda/SedaEndpoint.java
index 08ea797d1af..c296df9976d 100644
--- 
a/components/camel-seda/src/main/java/org/apache/camel/component/seda/SedaEndpoint.java
+++ 
b/components/camel-seda/src/main/java/org/apache/camel/component/seda/SedaEndpoint.java
@@ -132,6 +132,11 @@ public class SedaEndpoint extends DefaultEndpoint 
implements AsyncEndpoint, Brow
         this.concurrentConsumers = concurrentConsumers;
     }
 
+    @Override
+    public boolean isRemote() {
+        return false;
+    }
+
     @Override
     public SedaComponent getComponent() {
         return (SedaComponent) super.getComponent();
diff --git 
a/components/camel-spring-batch/src/main/java/org/apache/camel/component/spring/batch/SpringBatchEndpoint.java
 
b/components/camel-spring-batch/src/main/java/org/apache/camel/component/spring/batch/SpringBatchEndpoint.java
index c6ed4741ef2..345e60f558f 100644
--- 
a/components/camel-spring-batch/src/main/java/org/apache/camel/component/spring/batch/SpringBatchEndpoint.java
+++ 
b/components/camel-spring-batch/src/main/java/org/apache/camel/component/spring/batch/SpringBatchEndpoint.java
@@ -75,6 +75,11 @@ public class SpringBatchEndpoint extends DefaultEndpoint {
         this.jobRegistry = jobRegistry;
     }
 
+    @Override
+    public boolean isRemote() {
+        return false;
+    }
+
     @Override
     public Producer createProducer() throws Exception {
         return new SpringBatchProducer(this, jobLauncher, job, jobRegistry);
diff --git 
a/components/camel-spring/src/main/java/org/apache/camel/component/event/EventEndpoint.java
 
b/components/camel-spring/src/main/java/org/apache/camel/component/event/EventEndpoint.java
index 6cf5431115d..1e8ef97b1d6 100644
--- 
a/components/camel-spring/src/main/java/org/apache/camel/component/event/EventEndpoint.java
+++ 
b/components/camel-spring/src/main/java/org/apache/camel/component/event/EventEndpoint.java
@@ -52,6 +52,11 @@ public class EventEndpoint extends DefaultEndpoint 
implements ApplicationContext
         this.name = name;
     }
 
+    @Override
+    public boolean isRemote() {
+        return false;
+    }
+
     @Override
     public void setApplicationContext(ApplicationContext applicationContext) 
throws BeansException {
         this.applicationContext = applicationContext;
diff --git 
a/components/camel-stax/src/main/java/org/apache/camel/component/stax/StAXEndpoint.java
 
b/components/camel-stax/src/main/java/org/apache/camel/component/stax/StAXEndpoint.java
index b6649404f0a..2febe79b83e 100644
--- 
a/components/camel-stax/src/main/java/org/apache/camel/component/stax/StAXEndpoint.java
+++ 
b/components/camel-stax/src/main/java/org/apache/camel/component/stax/StAXEndpoint.java
@@ -42,6 +42,11 @@ public class StAXEndpoint extends ProcessorEndpoint {
         super(endpointUri, component);
     }
 
+    @Override
+    public boolean isRemote() {
+        return false;
+    }
+
     public String getContentHandlerClass() {
         return contentHandlerClass;
     }
diff --git 
a/components/camel-stringtemplate/src/main/java/org/apache/camel/component/stringtemplate/StringTemplateEndpoint.java
 
b/components/camel-stringtemplate/src/main/java/org/apache/camel/component/stringtemplate/StringTemplateEndpoint.java
index 112228358c5..0603f481775 100644
--- 
a/components/camel-stringtemplate/src/main/java/org/apache/camel/component/stringtemplate/StringTemplateEndpoint.java
+++ 
b/components/camel-stringtemplate/src/main/java/org/apache/camel/component/stringtemplate/StringTemplateEndpoint.java
@@ -55,6 +55,11 @@ public class StringTemplateEndpoint extends ResourceEndpoint 
{
         super(endpointUri, component, resourceUri);
     }
 
+    @Override
+    public boolean isRemote() {
+        return false;
+    }
+
     @Override
     public ExchangePattern getExchangePattern() {
         return ExchangePattern.InOut;
diff --git 
a/components/camel-stub/src/main/java/org/apache/camel/component/stub/StubEndpoint.java
 
b/components/camel-stub/src/main/java/org/apache/camel/component/stub/StubEndpoint.java
index 425cafe08f8..9265d549e7e 100644
--- 
a/components/camel-stub/src/main/java/org/apache/camel/component/stub/StubEndpoint.java
+++ 
b/components/camel-stub/src/main/java/org/apache/camel/component/stub/StubEndpoint.java
@@ -53,6 +53,11 @@ public class StubEndpoint extends SedaEndpoint {
         super(endpointUri, component, queueFactory, concurrentConsumers);
     }
 
+    @Override
+    public boolean isRemote() {
+        return false;
+    }
+
     @Override
     protected StubConsumer createNewConsumer(Processor processor) {
         return new StubConsumer(this, processor);
diff --git 
a/components/camel-thymeleaf/src/main/java/org/apache/camel/component/thymeleaf/ThymeleafEndpoint.java
 
b/components/camel-thymeleaf/src/main/java/org/apache/camel/component/thymeleaf/ThymeleafEndpoint.java
index 8a5e5e3e7ce..31bb060b0e9 100644
--- 
a/components/camel-thymeleaf/src/main/java/org/apache/camel/component/thymeleaf/ThymeleafEndpoint.java
+++ 
b/components/camel-thymeleaf/src/main/java/org/apache/camel/component/thymeleaf/ThymeleafEndpoint.java
@@ -83,6 +83,11 @@ public class ThymeleafEndpoint extends ResourceEndpoint {
         super(endpointURI, component, resourceURI);
     }
 
+    @Override
+    public boolean isRemote() {
+        return false;
+    }
+
     @Override
     public ExchangePattern getExchangePattern() {
         return ExchangePattern.InOut;
diff --git 
a/components/camel-tika/src/main/java/org/apache/camel/component/tika/TikaEndpoint.java
 
b/components/camel-tika/src/main/java/org/apache/camel/component/tika/TikaEndpoint.java
index e6ad9a4a36d..f23be5aeb80 100644
--- 
a/components/camel-tika/src/main/java/org/apache/camel/component/tika/TikaEndpoint.java
+++ 
b/components/camel-tika/src/main/java/org/apache/camel/component/tika/TikaEndpoint.java
@@ -40,6 +40,11 @@ public class TikaEndpoint extends DefaultEndpoint {
         this.tikaConfiguration = tikaConfiguration;
     }
 
+    @Override
+    public boolean isRemote() {
+        return false;
+    }
+
     @Override
     public Producer createProducer() throws Exception {
         return new TikaProducer(this);
diff --git 
a/components/camel-timer/src/main/java/org/apache/camel/component/timer/TimerEndpoint.java
 
b/components/camel-timer/src/main/java/org/apache/camel/component/timer/TimerEndpoint.java
index 5a2c50a9c75..1c54c653a6a 100644
--- 
a/components/camel-timer/src/main/java/org/apache/camel/component/timer/TimerEndpoint.java
+++ 
b/components/camel-timer/src/main/java/org/apache/camel/component/timer/TimerEndpoint.java
@@ -85,6 +85,11 @@ public class TimerEndpoint extends DefaultEndpoint 
implements MultipleConsumersS
         super(endpointUri, component);
     }
 
+    @Override
+    public boolean isRemote() {
+        return false;
+    }
+
     @Override
     public TimerComponent getComponent() {
         return (TimerComponent) super.getComponent();
diff --git 
a/components/camel-validator/src/main/java/org/apache/camel/component/validator/ValidatorEndpoint.java
 
b/components/camel-validator/src/main/java/org/apache/camel/component/validator/ValidatorEndpoint.java
index 18db887e2d6..0aa0d1053b4 100644
--- 
a/components/camel-validator/src/main/java/org/apache/camel/component/validator/ValidatorEndpoint.java
+++ 
b/components/camel-validator/src/main/java/org/apache/camel/component/validator/ValidatorEndpoint.java
@@ -92,6 +92,11 @@ public class ValidatorEndpoint extends DefaultEndpoint {
         schemaReader = new SchemaReader(getCamelContext(), resourceUri);
     }
 
+    @Override
+    public boolean isRemote() {
+        return false;
+    }
+
     @ManagedOperation(description = "Clears the cached schema, forcing to 
re-load the schema on next request")
     public void clearCachedSchema() {
         // will cause to reload the schema
diff --git 
a/components/camel-velocity/src/main/java/org/apache/camel/component/velocity/VelocityEndpoint.java
 
b/components/camel-velocity/src/main/java/org/apache/camel/component/velocity/VelocityEndpoint.java
index ad429b18c04..3c5745b526a 100644
--- 
a/components/camel-velocity/src/main/java/org/apache/camel/component/velocity/VelocityEndpoint.java
+++ 
b/components/camel-velocity/src/main/java/org/apache/camel/component/velocity/VelocityEndpoint.java
@@ -67,6 +67,11 @@ public class VelocityEndpoint extends ResourceEndpoint {
         super(uri, component, resourceUri);
     }
 
+    @Override
+    public boolean isRemote() {
+        return false;
+    }
+
     @Override
     public ExchangePattern getExchangePattern() {
         return ExchangePattern.InOut;
diff --git 
a/components/camel-wasm/src/main/java/org/apache/camel/component/wasm/WasmEndpoint.java
 
b/components/camel-wasm/src/main/java/org/apache/camel/component/wasm/WasmEndpoint.java
index 7c83b0f5507..79512b58311 100644
--- 
a/components/camel-wasm/src/main/java/org/apache/camel/component/wasm/WasmEndpoint.java
+++ 
b/components/camel-wasm/src/main/java/org/apache/camel/component/wasm/WasmEndpoint.java
@@ -31,39 +31,29 @@ import org.apache.camel.wasm.Wasm;
 /**
  * Invoke Wasm functions.
  */
-@UriEndpoint(
-             firstVersion = "4.4.0",
-             scheme = Wasm.SCHEME,
-             title = "Wasm",
-             syntax = "wasm:functionName",
-             producerOnly = true,
-             remote = false,
-             category = {
-                     Category.CORE,
-                     Category.SCRIPT
-             },
+@UriEndpoint(firstVersion = "4.4.0", scheme = Wasm.SCHEME, title = "Wasm", 
syntax = "wasm:functionName",
+             producerOnly = true, remote = false, category = { Category.CORE, 
Category.SCRIPT },
              headersClass = Wasm.Headers.class)
 public class WasmEndpoint extends DefaultEndpoint {
 
     @Metadata(required = true)
     @UriPath(description = "The Function Name")
     private final String functionName;
-
     @UriParam
     private WasmConfiguration configuration;
 
-    public WasmEndpoint(
-                        String endpointUri,
-                        Component component,
-                        String functionName,
+    public WasmEndpoint(String endpointUri, Component component, String 
functionName,
                         WasmConfiguration configuration) {
-
         super(endpointUri, component);
-
         this.functionName = functionName;
         this.configuration = configuration;
     }
 
+    @Override
+    public boolean isRemote() {
+        return false;
+    }
+
     public WasmConfiguration getConfiguration() {
         return configuration;
     }
diff --git 
a/components/camel-xj/src/main/java/org/apache/camel/component/xj/XJEndpoint.java
 
b/components/camel-xj/src/main/java/org/apache/camel/component/xj/XJEndpoint.java
index b8d99d6270f..6a0c7655ba8 100644
--- 
a/components/camel-xj/src/main/java/org/apache/camel/component/xj/XJEndpoint.java
+++ 
b/components/camel-xj/src/main/java/org/apache/camel/component/xj/XJEndpoint.java
@@ -46,6 +46,11 @@ public class XJEndpoint extends XsltSaxonEndpoint {
         super(endpointUri, component);
     }
 
+    @Override
+    public boolean isRemote() {
+        return false;
+    }
+
     @ManagedAttribute(description = "Transform direction")
     public TransformDirection getTransformDirection() {
         return transformDirection;
diff --git 
a/components/camel-xmlsecurity/src/main/java/org/apache/camel/component/xmlsecurity/XmlSignerEndpoint.java
 
b/components/camel-xmlsecurity/src/main/java/org/apache/camel/component/xmlsecurity/XmlSignerEndpoint.java
index 1c7fc9df7ed..7a50bbc149c 100644
--- 
a/components/camel-xmlsecurity/src/main/java/org/apache/camel/component/xmlsecurity/XmlSignerEndpoint.java
+++ 
b/components/camel-xmlsecurity/src/main/java/org/apache/camel/component/xmlsecurity/XmlSignerEndpoint.java
@@ -50,6 +50,11 @@ public class XmlSignerEndpoint extends DefaultEndpoint {
         this.configuration = configuration;
     }
 
+    @Override
+    public boolean isRemote() {
+        return false;
+    }
+
     public String getName() {
         return name;
     }
diff --git 
a/components/camel-xmlsecurity/src/main/java/org/apache/camel/component/xmlsecurity/XmlVerifierEndpoint.java
 
b/components/camel-xmlsecurity/src/main/java/org/apache/camel/component/xmlsecurity/XmlVerifierEndpoint.java
index 2230514dede..2014da924aa 100644
--- 
a/components/camel-xmlsecurity/src/main/java/org/apache/camel/component/xmlsecurity/XmlVerifierEndpoint.java
+++ 
b/components/camel-xmlsecurity/src/main/java/org/apache/camel/component/xmlsecurity/XmlVerifierEndpoint.java
@@ -51,6 +51,11 @@ public class XmlVerifierEndpoint extends DefaultEndpoint {
         this.configuration = configuration;
     }
 
+    @Override
+    public boolean isRemote() {
+        return false;
+    }
+
     public String getName() {
         return name;
     }
diff --git 
a/components/camel-xslt-saxon/src/main/java/org/apache/camel/component/xslt/saxon/XsltSaxonEndpoint.java
 
b/components/camel-xslt-saxon/src/main/java/org/apache/camel/component/xslt/saxon/XsltSaxonEndpoint.java
index d21ec0bdb6c..5137e02f832 100644
--- 
a/components/camel-xslt-saxon/src/main/java/org/apache/camel/component/xslt/saxon/XsltSaxonEndpoint.java
+++ 
b/components/camel-xslt-saxon/src/main/java/org/apache/camel/component/xslt/saxon/XsltSaxonEndpoint.java
@@ -82,6 +82,11 @@ public class XsltSaxonEndpoint extends XsltEndpoint {
         super(endpointUri, component);
     }
 
+    @Override
+    public boolean isRemote() {
+        return false;
+    }
+
     public List<Object> getSaxonExtensionFunctions() {
         return saxonExtensionFunctions;
     }
diff --git 
a/components/camel-xslt/src/main/java/org/apache/camel/component/xslt/XsltEndpoint.java
 
b/components/camel-xslt/src/main/java/org/apache/camel/component/xslt/XsltEndpoint.java
index 55a2b0a4576..e2df947ec7f 100644
--- 
a/components/camel-xslt/src/main/java/org/apache/camel/component/xslt/XsltEndpoint.java
+++ 
b/components/camel-xslt/src/main/java/org/apache/camel/component/xslt/XsltEndpoint.java
@@ -100,6 +100,11 @@ public class XsltEndpoint extends ProcessorEndpoint {
         super(endpointUri, component);
     }
 
+    @Override
+    public boolean isRemote() {
+        return false;
+    }
+
     @ManagedOperation(description = "Clears the cached XSLT stylesheet, 
forcing to re-load the stylesheet on next request")
     public void clearCachedStylesheet() {
         this.cacheCleared = true;
diff --git a/core/camel-api/src/main/java/org/apache/camel/Endpoint.java 
b/core/camel-api/src/main/java/org/apache/camel/Endpoint.java
index b2685be0f9f..8e9c5decd86 100644
--- a/core/camel-api/src/main/java/org/apache/camel/Endpoint.java
+++ b/core/camel-api/src/main/java/org/apache/camel/Endpoint.java
@@ -48,7 +48,6 @@ public interface Endpoint extends IsSingleton, Service, 
ComponentAware {
      */
     default String getEndpointBaseUri() {
         String value = getEndpointUri();
-
         return StringHelper.before(value, "?", value);
     }
 
@@ -187,4 +186,13 @@ public interface Endpoint extends IsSingleton, Service, 
ComponentAware {
      * @return whether properties is lenient or not
      */
     boolean isLenientProperties();
+
+    /**
+     * Whether this endpoint can connect to remote system, such as cloud 
providers, messaging brokers, databases. A
+     * local endpoint operates locally only, such as an internal message 
transformer, logger, or such as direct/seda
+     * components.
+     */
+    default boolean isRemote() {
+        return true;
+    }
 }
diff --git 
a/core/camel-console/src/main/java/org/apache/camel/impl/console/EndpointDevConsole.java
 
b/core/camel-console/src/main/java/org/apache/camel/impl/console/EndpointDevConsole.java
index 24779c5d724..9f5331f4cf6 100644
--- 
a/core/camel-console/src/main/java/org/apache/camel/impl/console/EndpointDevConsole.java
+++ 
b/core/camel-console/src/main/java/org/apache/camel/impl/console/EndpointDevConsole.java
@@ -96,6 +96,7 @@ public class EndpointDevConsole extends AbstractDevConsole {
         for (Endpoint e : col) {
             JsonObject jo = new JsonObject();
             jo.put("uri", e.getEndpointUri());
+            jo.put("remote", e.isRemote());
             boolean stub = 
e.getComponent().getClass().getSimpleName().equals("StubComponent");
             jo.put("stub", stub);
             var stat = findStats(stats, e.getEndpointUri());
diff --git 
a/core/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedEndpointMBean.java
 
b/core/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedEndpointMBean.java
index 79d9956d861..dcf0a15337c 100644
--- 
a/core/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedEndpointMBean.java
+++ 
b/core/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedEndpointMBean.java
@@ -37,6 +37,9 @@ public interface ManagedEndpointMBean {
     @ManagedAttribute(description = "Singleton")
     boolean isSingleton();
 
+    @ManagedAttribute(description = "Remote")
+    boolean isRemote();
+
     @ManagedAttribute(description = "Endpoint State")
     String getState();
 
diff --git 
a/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedEndpoint.java
 
b/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedEndpoint.java
index df4510213b0..8db9a5cd662 100644
--- 
a/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedEndpoint.java
+++ 
b/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedEndpoint.java
@@ -68,6 +68,11 @@ public class ManagedEndpoint implements ManagedInstance, 
ManagedEndpointMBean {
         return endpoint.isSingleton();
     }
 
+    @Override
+    public boolean isRemote() {
+        return endpoint.isRemote();
+    }
+
     @Override
     public String getState() {
         // must use String type to be sure remote JMX can read the attribute 
without requiring Camel classes.
diff --git 
a/core/camel-management/src/test/java/org/apache/camel/management/ManagedEndpointTest.java
 
b/core/camel-management/src/test/java/org/apache/camel/management/ManagedEndpointTest.java
index 8767edd5e79..d4f10ce7b68 100644
--- 
a/core/camel-management/src/test/java/org/apache/camel/management/ManagedEndpointTest.java
+++ 
b/core/camel-management/src/test/java/org/apache/camel/management/ManagedEndpointTest.java
@@ -26,6 +26,7 @@ import org.junit.jupiter.api.condition.DisabledOnOs;
 import org.junit.jupiter.api.condition.OS;
 
 import static 
org.apache.camel.management.DefaultManagementObjectNameStrategy.TYPE_ENDPOINT;
+import static org.junit.jupiter.api.Assertions.assertFalse;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 
 @DisabledOnOs(OS.AIX)
@@ -37,9 +38,13 @@ public class ManagedEndpointTest extends 
ManagementTestSupport {
 
         ObjectName on = getCamelObjectName(TYPE_ENDPOINT, "seda://test");
         assertTrue(mbeanServer.isRegistered(on));
+        Boolean remote = (Boolean) mbeanServer.getAttribute(on, "Remote");
+        assertFalse(remote);
 
         on = getCamelObjectName(TYPE_ENDPOINT, "mock://result");
         assertTrue(mbeanServer.isRegistered(on));
+        remote = (Boolean) mbeanServer.getAttribute(on, "Remote");
+        assertFalse(remote);
     }
 
     @Override
diff --git 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/process/ListEndpoint.java
 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/process/ListEndpoint.java
index 7fe9e947d19..d73794472d9 100644
--- 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/process/ListEndpoint.java
+++ 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/process/ListEndpoint.java
@@ -113,6 +113,7 @@ public class ListEndpoint extends ProcessWatchCommand {
                                 row.pid = Long.toString(ph.pid());
                                 row.endpoint = o.getString("uri");
                                 row.stub = o.getBooleanOrDefault("stub", 
false);
+                                row.remote = o.getBooleanOrDefault("remote", 
true);
                                 row.direction = o.getString("direction");
                                 row.total = o.getString("hits");
                                 row.uptime = extractSince(ph);
@@ -168,6 +169,7 @@ public class ListEndpoint extends ProcessWatchCommand {
                 new Column().header("DIR").with(r -> r.direction),
                 new Column().header("TOTAL").with(r -> r.total),
                 new 
Column().header("STUB").dataAlign(HorizontalAlign.CENTER).with(r -> r.stub ? 
"x" : ""),
+                new 
Column().header("REMOTE").dataAlign(HorizontalAlign.CENTER).with(r -> r.remote 
? "x" : ""),
                 new 
Column().header("URI").visible(!wideUri).dataAlign(HorizontalAlign.LEFT)
                         .maxWidth(90, OverflowBehaviour.ELLIPSIS_RIGHT)
                         .with(this::getUri),
@@ -217,6 +219,7 @@ public class ListEndpoint extends ProcessWatchCommand {
         String direction;
         String total;
         boolean stub;
+        boolean remote;
     }
 
 }

Reply via email to