[ 
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)

Reply via email to