[
https://issues.apache.org/jira/browse/CAMEL-25429?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Claus Ibsen reassigned CAMEL-25429:
-----------------------------------
Assignee: Claus Ibsen
> camel-jbang - route topology: show dead letter and onException targets as
> error paths from the route whose error handler acts
> -----------------------------------------------------------------------------------------------------------------------------
>
> Key: CAMEL-25429
> URL: https://issues.apache.org/jira/browse/CAMEL-25429
> Project: Camel
> Issue Type: Bug
> Components: camel-jbang
> Reporter: Claus Ibsen
> Assignee: Claus Ibsen
> Priority: Major
>
> The route topology of a project (the topology/architecture diagram of
> camel-jbang and the topology the camel-jbang MCP tools return) draws the
> target of a dead letter channel or onException wrongly.
> Example: fail-well/error-handling in camel-jbang-examples. It has a global
> deadLetterChannel to direct:parked and a global
> onException(IllegalStateException) that also sends to direct:parked. Route
> checkout (file:orders) calls direct:charge, which is route payment-provider
> with noErrorHandler. Route parked writes the order to file:parked. When the
> payment provider fails, the failure goes back to checkout, whose error
> handler sends the order to parked.
> What the diagram draws today:
> {noformat}
> file:orders -> [checkout] --> [payment-provider] --> > Utility (loop arrow
> on itself)
> (parked, collapsed)
> {noformat}
> It says payment-provider calls parked and parked calls itself; neither is
> true. The JSON topology does not list parked or its edges at all.
> What it should draw:
> {noformat}
> file:orders -> +----------+ call +------------------+
> | checkout |-------->| payment-provider |
> +----+-----+ +------------------+
> : on failure: dead letter (2 retries),
> : onException IllegalStateException
> v
> +----------+
> | parked |--> file:parked
> +----------+
> {noformat}
> * error paths drawn dashed and labelled (on failure: dead letter /
> onException), from the route whose error handler acts: here checkout, as
> payment-provider has noErrorHandler and its failure goes back to its caller
> * parked drawn as a normal route, not a collapsed Utility box
> * the JSON topology lists parked and the edge with kind onError, so a tool or
> an agent sees the same picture
> The link model already marks a link as on error when every send to it handles
> a failure, so much of this is drawing. Still to find out: why the edge comes
> out of payment-provider and why parked gets a loop (likely the global error
> handler's send to direct:parked is attached to every route, parked itself
> included).
> The same may be needed in camel-diagram and the route/topology dev consoles,
> which draw or report the route graph too.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)