Claus Ibsen created CAMEL-23656:
-----------------------------------
Summary: Add route topology service to compute inter-route
relationships
Key: CAMEL-23656
URL: https://issues.apache.org/jira/browse/CAMEL-23656
Project: Camel
Issue Type: New Feature
Components: camel-core
Reporter: Claus Ibsen
Camel has the route-structure dev console that shows the internal structure of
individual routes (the EIP tree). However, there is no built-in feature to show
the inter-route topology — how routes connect to each other through shared
endpoints.
For example:
- route1 sends to direct:process, which is consumed by route2
- route2 sends to kafka:cheese, which is also consumed by route3
- route4 starts from timer:heartbeat (a trigger entry point with no inbound
connection)
- a route may even call itself via a content-based router branch (cycles)
This adds a RouteTopologyService as an SPI interface in camel-api with an
implementation in camel-core-engine. The service computes the route dependency
graph by analyzing route definitions and matching endpoints across routes.
Endpoint matching uses scheme:context-path (stripping query parameters), so
kafka:cheese?brokers=a and kafka:cheese?groupId=b are considered the same
destination.
Connection types:
- Internal: direct, seda — route-to-route links via matching name
- External: kafka, jms, and other remote components — shared endpoint links
- Triggers: timer, quartz, cron, scheduler — entry points with no inbound edges
The service is accessible from:
- Java API (via CamelContext plugin)
- Dev console (new route-topology console)
- JMX (via ManagedCamelContext)
Follow-up work (separate tickets):
- REST DSL to direct route linking
- Route templates and kamelets
- Enhanced component metadata for query-parameter-based destination matching
- Integration with camel-diagram renderer
--
This message was sent by Atlassian Jira
(v8.20.10#820010)