Hi, Great to hear, thank you!
On Tuesday, June 13, 2023, Claus Ibsen <claus.ib...@gmail.com> wrote: > Hi > > Okay so your use-cases will then work out of the box in 3.20.6 onwards. > > On Tue, Jun 13, 2023 at 2:59 PM Claus Ibsen <claus.ib...@gmail.com> wrote: > > > Hi > > > > I tracked down what I consider a little bug > > https://issues.apache.org/jira/browse/CAMEL-19443 > > > > With the bug fix then this use-case from Mikael works on 3.20.x as well. > > > > The other ticket CAMEL-19411 to regard kameelts as "black box" still > > stands. However this is maybe a different concept that regular route > > templates that would not. > > So we may need to consider CAMEL-19411 whether we want to do this in > Camel > > v4 or not. > > > > > > > > On Sat, Jun 3, 2023 at 10:48 AM Claus Ibsen <claus.ib...@gmail.com> > wrote: > > > >> Hi > >> > >> Yes its a good idea to make kamelets like a "black box" and they should > >> not have any error handling (noErrorHandler), then > >> they are like calling a component. > >> > >> We can add an option to the kamelet component that can turn on old > >> behaviour for users that somehow want the old way (just in case). > >> https://issues.apache.org/jira/browse/CAMEL-19411 > >> > >> > >> On Fri, Jun 2, 2023 at 11:40 AM Mikael Koskinen <mijap...@gmail.com> > >> wrote: > >> > >>> Hi, > >>> > >>> Thank you for the replies. It would be great if the Kamelets could > >>> inherit the configuration as modifying the Kamelet specifications is > >>> mostly out of the question as we're using the stock/built-in Kamelets, > >>> like http-sink etc. I think this is quite a big issue (for me at least > >>> :)) as it means that we really can't use the Kamelets from our routes > >>> if we need to deal with errors in a specific way. And we do. The > >>> documentation states that the Kamelet should act like a > >>> direct-component but in this regard it doesn't. > >>> > >>> Without knowing the internals of Apache Camel that well, I wonder if > >>> this is something that could be changed on how the Kamelet Component > >>> is implemented? Would it be possible to pass the route configuration > >>> to the RouteDefinition, which is (I think) created in the > >>> Kamelet.java/templateToRoute? > >>> > >>> Best regards, > >>> Mikael > >>> > >>> pe 2. kesäk. 2023 klo 11.10 Andrea Cosentino (anco...@gmail.com) > >>> kirjoitti: > >>> > > >>> > But it's not with kamelets it's a plain route > >>> > > >>> > Il ven 2 giu 2023, 10:08 Andrea Cosentino <anco...@gmail.com> ha > >>> scritto: > >>> > > >>> > > There is one example in the camel-kamelets-example repo: > >>> > > > >>> > > > >>> > > > >>> https://github.com/apache/camel-kamelets-examples/tree/ > main/jbang/error-handler > >>> > > > >>> > > Il ven 2 giu 2023, 10:03 Pasquale Congiusti < > >>> pasquale.congiu...@gmail.com> > >>> > > ha scritto: > >>> > > > >>> > >> Hello, > >>> > >> Error handler should be managed differently in Kamelets. Basically > >>> the > >>> > >> problem is that a Kamelet is a RouteTemplate, so it is like a new > >>> Route > >>> > >> and > >>> > >> won't "inherit" the configuration you've defined in the original > >>> route. I > >>> > >> think you need to define your error inside the Kamelet > specification > >>> > >> (which > >>> > >> it's not a very nice design). In Camel K, we've created a layer on > >>> top of > >>> > >> it inside the runtime, in order to let the user define the error > >>> handling > >>> > >> in the Binding [1]. > >>> > >> > >>> > >> We had some draft work [2] to enhance that, expecting a similar > >>> global > >>> > >> mechanism in Camel. However, I haven't followed by near the recent > >>> > >> developments in Camel 4 to tell you if this is going to be > included > >>> in the > >>> > >> new version or not. > >>> > >> > >>> > >> Regards, > >>> > >> Pasquale. > >>> > >> > >>> > >> [1] > >>> > >> > >>> > >> > >>> https://camel.apache.org/camel-k/1.12.x/kamelets/ > kameletbindings-error-handler.html > >>> > >> [2] https://github.com/apache/camel-k-runtime/pull/868 > >>> > >> > >>> > >> On Fri, Jun 2, 2023 at 7:35 AM Mikael Koskinen < > mijap...@gmail.com> > >>> > >> wrote: > >>> > >> > >>> > >> > Hey, > >>> > >> > > >>> > >> > I wonder if anyone has any info regarding this issue? It's > >>> possible > >>> > >> > (and maybe quite likely!) that I'm using the > >>> > >> > routeConfiguration/errorHandler incorrectly. > >>> > >> > > >>> > >> > Thanks in advance. > >>> > >> > > >>> > >> > Best regards, > >>> > >> > Mikael > >>> > >> > > >>> > >> > pe 19. toukok. 2023 klo 15.24 Mikael Koskinen ( > mijap...@gmail.com > >>> ) > >>> > >> > kirjoitti: > >>> > >> > > > >>> > >> > > Hi, > >>> > >> > > > >>> > >> > > I'm encountering a problem where route configuration's error > >>> handler > >>> > >> > > isn't run if the exception happens on a Kamelet. Here's the > >>> gist with > >>> > >> > > tries to show the issue: > >>> > >> > > > >>> > >> > > >>> > >> > >>> https://gist.githubusercontent.com/mikoskinen/ > 4e3e3a8efdf891890a2a46dfddae1d48/raw/09055bcdc1c2252a77a069fcebd07d > 6f727db555/camel-yaml-kamelet-errorhandling.yaml > >>> > >> > > > >>> > >> > > More details: > >>> > >> > > > >>> > >> > > > >>> > >> > > First, here's a (working) version with no Kamelets: > >>> > >> > > > >>> > >> > > - routeConfiguration: > >>> > >> > > errorHandler: > >>> > >> > > deadLetterChannel: > >>> > >> > > deadLetterUri: direct:errorHandler > >>> > >> > > redeliveryPolicy: > >>> > >> > > maximumRedeliveries: 0 > >>> > >> > > - route: > >>> > >> > > from: > >>> > >> > > uri: timer:timer > >>> > >> > > steps: > >>> > >> > > - setBody: > >>> > >> > > expression: > >>> > >> > > constant: > >>> > >> > > expression: Hello World > >>> > >> > > - marshal: > >>> > >> > > json: > >>> > >> > > library: jackson > >>> > >> > > prettyPrint: true > >>> > >> > > - to: > >>> > >> > > uri: > >>> > >> > https://webhook.sitessss/b7562774-4939-4e90-9337-5b9dd4d2ff1d > >>> > >> > > - route: > >>> > >> > > from: > >>> > >> > > uri: direct:errorHandler > >>> > >> > > steps: > >>> > >> > > - log: > >>> > >> > > message: Handling error > >>> > >> > > loggingLevel: WARN > >>> > >> > > description: Handle Error > >>> > >> > > > >>> > >> > > When run, this is what I see in the logs: > >>> > >> > > > >>> > >> > > 2023-05-19 15:14:13.783 WARN 20268 --- [- timer://timer] > >>> > >> > > testing.camel.yaml:25 : Handling error > >>> > >> > > 2023-05-19 15:14:14.626 WARN 20268 --- [- timer://timer] > >>> > >> > > testing.camel.yaml:25 : Handling error > >>> > >> > > > >>> > >> > > It is working as I expected. > >>> > >> > > > >>> > >> > > Now, with a just one change where HTTP component is changed to > >>> Kamelet > >>> > >> > > HTTP Sink and I'm getting completely different result. > >>> > >> > > > >>> > >> > > - routeConfiguration: > >>> > >> > > errorHandler: > >>> > >> > > deadLetterChannel: > >>> > >> > > deadLetterUri: direct:errorHandler > >>> > >> > > redeliveryPolicy: > >>> > >> > > maximumRedeliveries: 0 > >>> > >> > > - route: > >>> > >> > > from: > >>> > >> > > uri: timer:timer > >>> > >> > > steps: > >>> > >> > > - setBody: > >>> > >> > > expression: > >>> > >> > > constant: > >>> > >> > > expression: Hello World > >>> > >> > > - marshal: > >>> > >> > > json: > >>> > >> > > library: jackson > >>> > >> > > prettyPrint: true > >>> > >> > > - to: > >>> > >> > > uri: kamelet:http-sink > >>> > >> > > parameters: > >>> > >> > > url: > >>> > >> > https://webhook.sitessss/b7562774-4939-4e90-9337-5b9dd4d2ff1d > >>> > >> > > - route: > >>> > >> > > from: > >>> > >> > > uri: direct:errorHandler > >>> > >> > > steps: > >>> > >> > > - log: > >>> > >> > > message: Handling error > >>> > >> > > loggingLevel: WARN > >>> > >> > > description: Handle Error > >>> > >> > > > >>> > >> > > Now when run I'm getting the stacktrace and there's no > "Handling > >>> > >> > > error" to be found: > >>> > >> > > > >>> > >> > > 2023-05-19 15:20:22.084 INFO 17192 --- [ main] > >>> > >> > > el.impl.engine.AbstractCamelContext : Apache Camel 3.20.4 > (tes > >>> > >> > > ting) started in 4s854ms (build:196ms init:3s906ms start:752ms > >>> > >> > JVM-uptime:8s) > >>> > >> > > 2023-05-19 15:20:23.165 ERROR 17192 --- [- timer://timer] > >>> > >> > > or.errorhandler.DefaultErrorHandler : Failed delivery for > (Mes > >>> > >> > > sageId: B24BA7702CBB985-0000000000000000 on ExchangeId: > >>> > >> > > B24BA7702CBB985-0000000000000000). Exhausted after delivery > atte > >>> > >> > > mpt: 1 caught: java.net.UnknownHostException: No such host is > >>> known > >>> > >> > > (webhook.sitessss) > >>> > >> > > > >>> > >> > > Message History > >>> > >> > > > >>> > >> > > >>> > >> > >>> ------------------------------------------------------------ > ------------------------------------------------------------ > >>> > >> > > --------------- > >>> > >> > > Source ID Processor > >>> > >> > > Elapsed (ms) > >>> > >> > > testing.camel.yaml:9 route1/route1 from[timer://timer] > >>> > >> > > 2701025406 > >>> > >> > > testing.camel.yaml:11 route1/setBody1 setBody[constant{Hello > >>> World}] > >>> > >> > > 2 > >>> > >> > > testing.camel.yaml:15 route1/marshal1 > >>> > >> > > marshal[org.apache.camel.model.dataformat.JsonDa > >>> > >> > > > >>> > >> > > A bug or do I have to configure something more to get the > >>> kamelet to > >>> > >> > > use the route's error handler? > >>> > >> > > > >>> > >> > > Best regards, > >>> > >> > > Mikael > >>> > >> > > >>> > >> > >>> > > > >>> > >> > >> > >> -- > >> Claus Ibsen > >> ----------------- > >> @davsclaus > >> Camel in Action 2: https://www.manning.com/ibsen2 > >> > > > > > > -- > > Claus Ibsen > > ----------------- > > @davsclaus > > Camel in Action 2: https://www.manning.com/ibsen2 > > > > > -- > Claus Ibsen > ----------------- > @davsclaus > Camel in Action 2: https://www.manning.com/ibsen2 >