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 ce9ef36904f398d1c1c2f7c266a7ae61936394ce
Author: Claus Ibsen <claus.ib...@gmail.com>
AuthorDate: Sun May 26 11:26:43 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.
---
 .../platform/http/DefaultPlatformHttpConsumer.java   |  5 +++++
 .../platform/http/PlatformHttpEndpoint.java          |  5 -----
 .../apache/camel/spi/EndpointLocationAddress.java    |  7 -------
 .../java/org/apache/camel/spi/HostedService.java}    | 20 ++++++++++----------
 .../camel/impl/console/ConsumerDevConsole.java       |  2 ++
 .../camel/impl/console/EndpointDevConsole.java       |  2 --
 .../api/management/mbean/ManagedConsumerMBean.java   |  3 +++
 .../api/management/mbean/ManagedEndpointMBean.java   |  3 ---
 .../camel/management/mbean/ManagedConsumer.java      |  8 ++++++++
 .../camel/management/mbean/ManagedEndpoint.java      |  8 --------
 .../org/apache/camel/support/DefaultConsumer.java    |  8 +++++++-
 11 files changed, 35 insertions(+), 36 deletions(-)

diff --git 
a/components/camel-platform-http/src/main/java/org/apache/camel/component/platform/http/DefaultPlatformHttpConsumer.java
 
b/components/camel-platform-http/src/main/java/org/apache/camel/component/platform/http/DefaultPlatformHttpConsumer.java
index d26c2505da7..9a1dba53f90 100644
--- 
a/components/camel-platform-http/src/main/java/org/apache/camel/component/platform/http/DefaultPlatformHttpConsumer.java
+++ 
b/components/camel-platform-http/src/main/java/org/apache/camel/component/platform/http/DefaultPlatformHttpConsumer.java
@@ -35,6 +35,11 @@ public class DefaultPlatformHttpConsumer extends 
DefaultConsumer
         super(endpoint, processor);
     }
 
+    @Override
+    public boolean isHostedService() {
+        return true;
+    }
+
     @Override
     public PlatformHttpEndpoint getEndpoint() {
         return (PlatformHttpEndpoint) super.getEndpoint();
diff --git 
a/components/camel-platform-http/src/main/java/org/apache/camel/component/platform/http/PlatformHttpEndpoint.java
 
b/components/camel-platform-http/src/main/java/org/apache/camel/component/platform/http/PlatformHttpEndpoint.java
index ef77dbf5f70..7ff1eed4f92 100644
--- 
a/components/camel-platform-http/src/main/java/org/apache/camel/component/platform/http/PlatformHttpEndpoint.java
+++ 
b/components/camel-platform-http/src/main/java/org/apache/camel/component/platform/http/PlatformHttpEndpoint.java
@@ -97,11 +97,6 @@ public class PlatformHttpEndpoint extends DefaultEndpoint
         return (PlatformHttpComponent) super.getComponent();
     }
 
-    @Override
-    public boolean isHostedAddress() {
-        return true;
-    }
-
     @Override
     public String getAddress() {
         String server = "http://0.0.0.0";;
diff --git 
a/core/camel-api/src/main/java/org/apache/camel/spi/EndpointLocationAddress.java
 
b/core/camel-api/src/main/java/org/apache/camel/spi/EndpointLocationAddress.java
index 5a6c35ec96d..828ca615b51 100644
--- 
a/core/camel-api/src/main/java/org/apache/camel/spi/EndpointLocationAddress.java
+++ 
b/core/camel-api/src/main/java/org/apache/camel/spi/EndpointLocationAddress.java
@@ -27,13 +27,6 @@ import java.util.Map;
  */
 public interface EndpointLocationAddress {
 
-    /**
-     * Is this service address hosted (in this Camel application) or external 
such as on a remote network connection.
-     */
-    default boolean isHostedAddress() {
-        return false;
-    }
-
     /**
      * Gets the remote address such as URL or hostname
      *
diff --git 
a/core/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedConsumerMBean.java
 b/core/camel-api/src/main/java/org/apache/camel/spi/HostedService.java
similarity index 67%
copy from 
core/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedConsumerMBean.java
copy to core/camel-api/src/main/java/org/apache/camel/spi/HostedService.java
index 195410ce158..53e5226707c 100644
--- 
a/core/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedConsumerMBean.java
+++ b/core/camel-api/src/main/java/org/apache/camel/spi/HostedService.java
@@ -14,16 +14,16 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.api.management.mbean;
+package org.apache.camel.spi;
 
-import org.apache.camel.api.management.ManagedAttribute;
-
-public interface ManagedConsumerMBean extends ManagedServiceMBean {
-
-    @ManagedAttribute(description = "Endpoint URI", mask = true)
-    String getEndpointUri();
-
-    @ManagedAttribute(description = "Current number of inflight Exchanges")
-    Integer getInflightExchanges();
+/**
+ * To use for identifying {@link org.apache.camel.Consumer} which can host a 
service,
+ * such as a TCP network server, or an embedded HTTP server.
+ */
+public interface HostedService {
 
+    /**
+     * Is this service hosted (in this Camel application).
+     */
+    boolean isHostedService();
 }
diff --git 
a/core/camel-console/src/main/java/org/apache/camel/impl/console/ConsumerDevConsole.java
 
b/core/camel-console/src/main/java/org/apache/camel/impl/console/ConsumerDevConsole.java
index 89c574bce8b..91004eaf753 100644
--- 
a/core/camel-console/src/main/java/org/apache/camel/impl/console/ConsumerDevConsole.java
+++ 
b/core/camel-console/src/main/java/org/apache/camel/impl/console/ConsumerDevConsole.java
@@ -63,6 +63,7 @@ public class ConsumerDevConsole extends AbstractDevConsole {
                     sb.append(String.format("\n    Uri: %s", 
mc.getEndpointUri()));
                     sb.append(String.format("\n    State: %s", mc.getState()));
                     sb.append(String.format("\n    Class: %s", 
mc.getServiceType()));
+                    sb.append(String.format("\n    Hosted Service: %b", 
mc.isHostedService()));
                     sb.append(String.format("\n    Inflight: %d", inflight));
                     if (mcc instanceof ManagedSchedulePollConsumerMBean mpc) {
                         sb.append(String.format("\n    Polling: %s", 
mpc.isPolling()));
@@ -150,6 +151,7 @@ public class ConsumerDevConsole extends AbstractDevConsole {
                     jo.put("uri", mc.getEndpointUri());
                     jo.put("state", mc.getState());
                     jo.put("class", mc.getServiceType());
+                    jo.put("hostedService", mc.isHostedService());
                     jo.put("inflight", inflight);
                     jo.put("scheduled", false);
                     if (mcc instanceof ManagedSchedulePollConsumerMBean mpc) {
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 4f8c057802a..67cf79047b6 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
@@ -108,8 +108,6 @@ public class EndpointDevConsole extends AbstractDevConsole {
             }
             if (e instanceof EndpointLocationAddress raa) {
                 JsonObject ro = new JsonObject();
-                ro.put("hosted", raa.isHostedAddress());
-                ro.put("remote", !raa.isHostedAddress());
                 ro.put("address", raa.getAddress());
                 var d = raa.getAddressMetadata();
                 if (d != null) {
diff --git 
a/core/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedConsumerMBean.java
 
b/core/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedConsumerMBean.java
index 195410ce158..96404ade564 100644
--- 
a/core/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedConsumerMBean.java
+++ 
b/core/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedConsumerMBean.java
@@ -26,4 +26,7 @@ public interface ManagedConsumerMBean extends 
ManagedServiceMBean {
     @ManagedAttribute(description = "Current number of inflight Exchanges")
     Integer getInflightExchanges();
 
+    @ManagedAttribute(description = "Whether this consumer hosts a service 
such as acting as a HTTP server (only available for some components)")
+    boolean isHostedService();
+
 }
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 53c2418c762..dbf19c1944e 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
@@ -40,9 +40,6 @@ public interface ManagedEndpointMBean {
     @ManagedAttribute(description = "Endpoint State")
     String getState();
 
-    @ManagedAttribute(description = "Whether the endpoint location address is 
hosted or external (only available for some components)")
-    boolean isEndpointLocationHosted();
-
     @ManagedAttribute(description = "Address (such as URL or hostname) this 
endpoint is connecting (only available for some components)")
     String getEndpointLocationAddress();
 
diff --git 
a/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedConsumer.java
 
b/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedConsumer.java
index e693ac778c0..5766b4c4e25 100644
--- 
a/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedConsumer.java
+++ 
b/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedConsumer.java
@@ -20,6 +20,7 @@ import org.apache.camel.CamelContext;
 import org.apache.camel.Consumer;
 import org.apache.camel.api.management.ManagedResource;
 import org.apache.camel.api.management.mbean.ManagedConsumerMBean;
+import org.apache.camel.spi.HostedService;
 
 @ManagedResource(description = "Managed Consumer")
 public class ManagedConsumer extends ManagedService implements 
ManagedConsumerMBean {
@@ -48,4 +49,11 @@ public class ManagedConsumer extends ManagedService 
implements ManagedConsumerMB
         }
     }
 
+    @Override
+    public boolean isHostedService() {
+        if (consumer instanceof HostedService hs) {
+            return hs.isHostedService();
+        }
+        return false;
+    }
 }
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 7c50fb0a0c2..c90ba2f6813 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
@@ -80,14 +80,6 @@ public class ManagedEndpoint implements ManagedInstance, 
ManagedEndpointMBean {
         return ServiceStatus.Started.name();
     }
 
-    @Override
-    public boolean isEndpointLocationHosted() {
-        if (endpoint instanceof EndpointLocationAddress raa) {
-            return raa.isHostedAddress();
-        }
-        return false;
-    }
-
     @Override
     public String getEndpointLocationAddress() {
         if (endpoint instanceof EndpointLocationAddress raa) {
diff --git 
a/core/camel-support/src/main/java/org/apache/camel/support/DefaultConsumer.java
 
b/core/camel-support/src/main/java/org/apache/camel/support/DefaultConsumer.java
index e5d8dd7b0f2..f6d0298f685 100644
--- 
a/core/camel-support/src/main/java/org/apache/camel/support/DefaultConsumer.java
+++ 
b/core/camel-support/src/main/java/org/apache/camel/support/DefaultConsumer.java
@@ -29,6 +29,7 @@ import org.apache.camel.health.HealthCheck;
 import org.apache.camel.health.HealthCheckAware;
 import org.apache.camel.spi.ExceptionHandler;
 import org.apache.camel.spi.ExchangeFactory;
+import org.apache.camel.spi.HostedService;
 import org.apache.camel.spi.RouteIdAware;
 import org.apache.camel.spi.UnitOfWork;
 import org.apache.camel.support.service.ServiceHelper;
@@ -40,7 +41,7 @@ import org.slf4j.LoggerFactory;
 /**
  * A default consumer useful for implementation inheritance.
  */
-public class DefaultConsumer extends ServiceSupport implements Consumer, 
RouteAware, RouteIdAware, HealthCheckAware {
+public class DefaultConsumer extends ServiceSupport implements Consumer, 
RouteAware, RouteIdAware, HealthCheckAware, HostedService {
 
     private static final Logger LOG = 
LoggerFactory.getLogger(DefaultConsumer.class);
 
@@ -64,6 +65,11 @@ public class DefaultConsumer extends ServiceSupport 
implements Consumer, RouteAw
                 .getExchangeFactory().newExchangeFactory(this);
     }
 
+    @Override
+    public boolean isHostedService() {
+        return false;
+    }
+
     @Override
     public String toString() {
         if (consumerToString == null) {

Reply via email to