Re: 3.20.4 Bug(?): Route's ErrorHandler not working if exception happens on Kamelet
Hi, Great to hear, thank you! On Tuesday, June 13, 2023, Claus Ibsen 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 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 > 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 > >> 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 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 > >>> >
Re: 3.20.4 Bug(?): Route's ErrorHandler not working if exception happens on Kamelet
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 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 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 >> 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 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 >>> > >> 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/09055bcdc1c2252a77a069fcebd07d6f727db555/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 >>> > >> > > -
Re: 3.20.4 Bug(?): Route's ErrorHandler not working if exception happens on Kamelet
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 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 > 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 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 >> > >> 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/09055bcdc1c2252a77a069fcebd07d6f727db555/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: >> > >> > >
Re: 3.20.4 Bug(?): Route's ErrorHandler not working if exception happens on Kamelet
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 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 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 > > >> 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/09055bcdc1c2252a77a069fcebd07d6f727db555/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.site/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 --- [-
Re: 3.20.4 Bug(?): Route's ErrorHandler not working if exception happens on Kamelet
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 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 > > 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 > >> 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/09055bcdc1c2252a77a069fcebd07d6f727db555/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.site/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: > >> > >
Re: 3.20.4 Bug(?): Route's ErrorHandler not working if exception happens on Kamelet
But it's not with kamelets it's a plain route Il ven 2 giu 2023, 10:08 Andrea Cosentino 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 > 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 >> 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/09055bcdc1c2252a77a069fcebd07d6f727db555/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.site/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.site/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:
Re: 3.20.4 Bug(?): Route's ErrorHandler not working if exception happens on Kamelet
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 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 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/09055bcdc1c2252a77a069fcebd07d6f727db555/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.site/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.site/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- on ExchangeId: > > > B24BA7702CBB985-). Exhausted after delivery atte > > > mpt: 1 caught: java.net.UnknownHostException: No such host is known > > > (webhook.site) > > > > > > Message History > > > > > >
Re: 3.20.4 Bug(?): Route's ErrorHandler not working if exception happens on Kamelet
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 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/09055bcdc1c2252a77a069fcebd07d6f727db555/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.site/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.site/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- on ExchangeId: > > B24BA7702CBB985-). Exhausted after delivery atte > > mpt: 1 caught: java.net.UnknownHostException: No such host is known > > (webhook.site) > > > > 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
Re: 3.20.4 Bug(?): Route's ErrorHandler not working if exception happens on Kamelet
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/09055bcdc1c2252a77a069fcebd07d6f727db555/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.site/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.site/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- on ExchangeId: > B24BA7702CBB985-). Exhausted after delivery atte > mpt: 1 caught: java.net.UnknownHostException: No such host is known > (webhook.site) > > 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
3.20.4 Bug(?): Route's ErrorHandler not working if exception happens on Kamelet
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/09055bcdc1c2252a77a069fcebd07d6f727db555/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.site/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.site/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- on ExchangeId: B24BA7702CBB985-). Exhausted after delivery atte mpt: 1 caught: java.net.UnknownHostException: No such host is known (webhook.site) 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