davsclaus opened a new pull request, #29599: URL: https://github.com/apache/camel/pull/29599
_Claude Code on behalf of davsclaus_ [CAMEL-26823](https://issues.apache.org/jira/browse/CAMEL-26823) The route topology has an edge for every endpoint a route sends to and another route consumes, for any component, with its `connectionType` and `kind`. It did not say whether the sending route waits for the answer. Over a broker that is the difference between request-reply and a hand-off: in connect-service/jms-request-reply, reserve-order sends to `jms:queue:stock` with `exchangePattern=InOut` and waits for stock-service, while it hands the reserved order to shipping and invoicing over a topic. The tools that draw and count the flow of an integration (the About view and the Diagram of the Camel TUI) could not tell them apart, and counted each hop through the broker as a new message: 14 exchanges for 3 orders. - `RouteTopologyDumper.TopologyEdge` has the new `reply` component (since 4.24); the seven-argument constructor is kept. - `DefaultRouteTopologyDumper` decides it as `SendProcessor` decides the exchange pattern: the `exchangePattern` of the endpoint uri, else the pattern of the send (`to` with `pattern`), else the pattern of the message the route consumed (InOut from platform-http, InOnly from a timer). `direct` and `kamelet` always run the target before the route goes on. An error path (dead letter channel, onException) never waits. - A `wireTap` or a `toD` to an endpoint the route names, not one it computes with an expression, is now an edge too (a wire tap never waits), and an external endpoint when no route consumes from it. Before, the topology had no edge for `wireTap: direct:audit`. - The `route-topology` console writes `reply` (its typed `EdgeEntry`, and the generated schema and catalog copies), and its text output marks a request-reply the component does not imply: `--> quoter via seda:quote [internal, request-reply]`. The topology JSON of the dump routes strategy writes `reply: true`. - Upgrade guide 4.24: the new component and the wire tap edges. The About view of the TUI will use this in a follow-up PR: a broker hop between the routes of one integration as a call (↳) or a hand-off (⇢), In and Out from the external endpoints, and Last 5m counting a message once. Tests: `DefaultRouteTopologyDumperReplyTest` (the shape of jms-request-reply, with seda for the broker: a hand-off, a request-reply by the endpoint and by the send, a direct call, a wire tap, the request of an InOut consumer, a dead letter channel), `RouteTopologyDevConsoleTest` (JSON and text), `DefaultDumpRoutesStrategyTopologyJsonTest`. camel-console and the topology tests of camel-core pass locally. 🤖 Generated with [Claude Code](https://claude.com/claude-code) -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
