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)

Reply via email to