This is an automated email from the ASF dual-hosted git repository. davsclaus pushed a commit to branch topology-external-endpoints in repository https://gitbox.apache.org/repos/asf/camel.git
commit bb8cc797a4e04df879297e2453babf592602ec4c Author: Claus Ibsen <[email protected]> AuthorDate: Tue Jun 2 11:22:35 2026 +0200 Skip stub endpoints when building scheme remote map When components are stubbed (e.g. --stub=kafka), StubEndpoint.isRemote() returns false which incorrectly masks the real component's remote status. Skip stub endpoints so the fallback logic correctly treats schemes like kafka as remote. Co-Authored-By: Claude Opus 4.6 <[email protected]> --- .../java/org/apache/camel/impl/DefaultRouteTopologyDumper.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/impl/DefaultRouteTopologyDumper.java b/core/camel-core-engine/src/main/java/org/apache/camel/impl/DefaultRouteTopologyDumper.java index 1651465effef..fe9ccf214345 100644 --- a/core/camel-core-engine/src/main/java/org/apache/camel/impl/DefaultRouteTopologyDumper.java +++ b/core/camel-core-engine/src/main/java/org/apache/camel/impl/DefaultRouteTopologyDumper.java @@ -92,8 +92,12 @@ public class DefaultRouteTopologyDumper implements RouteTopologyDumper { Map<String, List<String>> inputUriToRouteIds) { // Build scheme -> isRemote map from endpoint registry + // Skip stub endpoints — they mask the real component's remote status Map<String, Boolean> schemeRemoteMap = new HashMap<>(); for (Endpoint ep : context.getEndpoints()) { + if (isStubEndpoint(ep)) { + continue; + } String scheme = extractScheme(ep.getEndpointUri()); schemeRemoteMap.putIfAbsent(scheme, ep.isRemote()); } @@ -146,6 +150,10 @@ public class DefaultRouteTopologyDumper implements RouteTopologyDumper { return !INTERNAL_SCHEMES.contains(scheme) && !TRIGGER_SCHEMES.contains(scheme); } + private static boolean isStubEndpoint(Endpoint ep) { + return "StubEndpoint".equals(ep.getClass().getSimpleName()); + } + private static String extractScheme(String uri) { int idx = uri.indexOf(':'); return idx > 0 ? uri.substring(0, idx) : uri;
