Hi

https://camel.apache.org/blog/2024/12/camel3-eol/

That 3.22.4 was a special one-off release due to a CVE that would allow
users stuck on 3.x to be able to have a fix for it.
We won't do other releases of 3.x.

I am sorry I am not interested in logs from Camel 3.x.
You are best to try to find a workaround or solution yourself, or stay on
the older working release.





On Thu, Jun 12, 2025 at 8:45 PM j vh <jvh...@hotmail.com> wrote:

> Thank you Claus for your reply.
> Just wondering though, according to this page:
> https://camel.apache.org/releases/ version 3.22.4 is LTS and was built
> March 9, 2025. Are you still saying that all versions of Camel 3 are EOL?
>
> In the meantime, we did a quick try with Camel 4.x.x. for this problem.
> Daniel, my colleague, did a test with Camel 4.10.0 and SB-3.1.8 and we do
> NOT see this problem there. So that's news there and it seems specific then
> to 3.22.4.
> We also thought about it possibly as a timing and/or order of operations
> problem.
> So, we tried to a) add a delay after the route templates are created and
> before they are used, b) add SB annotation @DependsOn - but neither of
> these worked.
> From the "light" debugging we did, we see that the list used by the
> RoutesConfigurer class doesn't have the same content. If you're interested
> we could provide some trace/debug logs for you ;-)
>
> thanks,
> jvh/dg
>
>
>
> ________________________________________
> From: Claus Ibsen <claus.ib...@gmail.com>
> Sent: June 9, 2025 10:01 AM
> To: users@camel.apache.org
> Subject: Re: creating route template - java builder vrs java dsl
>
> Hi
>
> We have not heard about this before.
> Camel 3 is EOL and not supported.
>
> You are welcome to try with the latest Camel v4 and see if you can find out
> if something is still wrong or not.
>
> Also mind SB has package scanning so your problem is likely something about
> SB loading some clases before others and you end up with the templates not
> loaded before the code you do that uses the template.
> Maybe there is some SB annotation trick to declare dependency order among
> the beans and whatnot.
>
> But Camel 3 is EOL and we wont have time to investigate old releases.
>
>
> On Fri, Jun 6, 2025 at 7:44 PM j vh <jvh...@hotmail.com> wrote:
>
> > Hello,
> > We are upgrading from Camel 3.18.4 to 3.22.4 to pickup some important bug
> > fixes but noticed a new problem. When we are instantiating a route in a
> > spring-boot (2.6.2) app from a route-template the Java builder
> > intermittently fails 3 out of 4 times. As a workaround we switched to
> using
> > the Java DSL way to create the route and this seems to work fine.
> >
> > This Java DSL code works:
> >
> > final TemplatedRouteDefinition route = templatedRoute("template1")
> >               .routeId("route-template1-id")
> >               .parameter("param1", queueName)
> >               .parameter("param2", restApiEndpoint));
> >       LOG.info("buildTemplatedRoute() created templated route: {}",
> > route.getRouteId());
> >
> > But this Java builder code fails intermittently (3 out of 4 times):
> >
> >       final String route = TemplatedRouteBuilder.builder(camelContext,
> > "template1")
> >               .routeId("route-template1-id")
> >               .parameter("param1", queueName)
> >               .parameter("param2", restApiEndpoint)
> >               .add();
> >       LOG.application.info("buildTemplatedRoute() created templated
> > route: {}", route);
> >
> > When the service starts and calls the Camel 3.22.4 builder code, it fails
> > and throws this:
> >
> > org.apache.camel.spring.boot.CamelSpringBootInitializationException:
> > java.lang.IllegalArgumentException: Cannot find RouteTemplate with id
> > template1
> >         at
> >
> org.apache.camel.spring.boot.CamelSpringBootApplicationListener.onApplicationEvent(CamelSpringBootApplicationListener.java:212)
> > ~[camel-spring-boot-3.22.4.jar:3.22.4]
> >         at
> >
> org.apache.camel.spring.boot.CamelSpringBootApplicationListener.onApplicationEvent(CamelSpringBootApplicationListener.java:58)
> > ~[camel-spring-boot-3.22.4.jar:3.22.4]
> >         at
> >
> org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:176)
> > ~[spring-context-5.3.14.jar:5.3.14]
> >         at
> >
> org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:169)
> > ~[spring-context-5.3.14.jar:5.3.14]
> >         at
> >
> org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:143)
> > ~[spring-context-5.3.14.jar:5.3.14]
> >         at
> >
> org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:421)
> > ~[spring-context-5.3.14.jar:5.3.14]
> >         at
> >
> org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:378)
> > ~[spring-context-5.3.14.jar:5.3.14]
> >         at
> >
> org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:938)
> > ~[spring-context-5.3.14.jar:5.3.14]
> >         at
> >
> org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:586)
> > ~[spring-context-5.3.14.jar:5.3.14]
> >         at
> >
> org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:145)
> > ~[spring-boot-2.6.2.jar:2.6.2]
> >         at
> >
> org.springframework.boot.SpringApplication.refresh(SpringApplication.java:730)
> > ~[spring-boot-2.6.2.jar:2.6.2]
> >         at
> >
> org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:412)
> > ~[spring-boot-2.6.2.jar:2.6.2]
> >         at
> >
> org.springframework.boot.SpringApplication.run(SpringApplication.java:302)
> > ~[spring-boot-2.6.2.jar:2.6.2]
> >         at
> >
> org.springframework.boot.SpringApplication.run(SpringApplication.java:1301)
> > ~[spring-boot-2.6.2.jar:2.6.2]
> >         at
> >
> org.springframework.boot.SpringApplication.run(SpringApplication.java:1290)
> > ~[spring-boot-2.6.2.jar:2.6.2]
> >         at
> >
> ca.gc.esdc.interop.interfaces.cancelled_payments.payment.sps_f2r_ent.service.SpsMessageProcessorApplication.main(SpsMessageProcessorApplication.java:25)
> > ~[classes/:na]
> > Caused by: java.lang.IllegalArgumentException: Cannot find RouteTemplate
> > with id ConsumerRouteDefaultTemplate
> >         at
> >
> org.apache.camel.impl.DefaultModel.addRouteFromTemplate(DefaultModel.java:419)
> > ~[camel-core-engine-3.22.4.jar:3.22.4]
> >         at
> >
> org.apache.camel.impl.DefaultCamelContext.addRouteFromTemplate(DefaultCamelContext.java:502)
> > ~[camel-core-engine-3.22.4.jar:3.22.4]
> >         at
> >
> org.apache.camel.builder.TemplatedRouteBuilder.add(TemplatedRouteBuilder.java:179)
> > ~[camel-core-model-3.22.4.jar:3.22.4]
> >         at
> >
> ca.gc.esdc.interop.interfaces.cancelled_payments.payment.sps_f2r_ent.service.routes.SpsMessageProcessorRoute.buildTemplatedRoute(SpsMessageProcessorRoute.java:91)
> > ~[classes/:na]
> >         at
> >
> ca.gc.esdc.interop.interfaces.cancelled_payments.payment.sps_f2r_ent.service.routes.SpsMessageProcessorRoute.defineRoutes(SpsMessageProcessorRoute.java:59)
> > ~[classes/:na]
> >         at
> >
> ca.gc.esdc.interop.base.messageprocessor.routes.AbstractRoute.configure(AbstractRoute.java:38)
> > ~[base-message-processor-1.3.0-DAN.jar:na]
> >         at
> >
> org.apache.camel.builder.RouteBuilder.checkInitialized(RouteBuilder.java:723)
> > ~[camel-core-model-3.22.4.jar:3.22.4]
> >         at
> >
> org.apache.camel.builder.RouteBuilder.configureRoutes(RouteBuilder.java:668)
> > ~[camel-core-model-3.22.4.jar:3.22.4]
> >         at
> >
> org.apache.camel.builder.RouteBuilder.addRoutesToCamelContext(RouteBuilder.java:600)
> > ~[camel-core-model-3.22.4.jar:3.22.4]
> >         at
> >
> org.apache.camel.impl.engine.AbstractCamelContext.addRoutes(AbstractCamelContext.java:1212)
> > ~[camel-base-engine-3.22.4.jar:3.22.4]
> >         at
> >
> org.apache.camel.main.RoutesConfigurer.addDiscoveredRoutes(RoutesConfigurer.java:247)
> > ~[camel-main-3.22.4.jar:3.22.4]
> >         at
> >
> org.apache.camel.main.RoutesConfigurer.configureRoutes(RoutesConfigurer.java:222)
> > ~[camel-main-3.22.4.jar:3.22.4]
> >         at
> >
> org.apache.camel.spring.boot.CamelSpringBootApplicationListener.onApplicationEvent(CamelSpringBootApplicationListener.java:106)
> > ~[camel-spring-boot-3.22.4.jar:3.22.4]
> >
> > So it appears that there is some timing issue that makes this fail
> > intermittently since the template cannot be found.
> >
> > One extra complication is that we have coded the route-template
> > definitions in a dependent jar that is pulled into our spring-boot
> service
> > by our maven build. So the code that actually builds and runs the route
> is
> > in the service.
> > We added this to our service main class in order to find the route in the
> > dependent jar:
> >
> > @ComponentScan(basePackages = {
> >       "package-for-the-dependent-jar",
> >       "package-for-the-spring-boot-service"  // must be after the dep.
> jar
> > package
> >       })
> >
> > Wonder if what we see now with the builder is a known problem in Camel
> > 3.22.4 ?
> > Any comments/thoughts?
> > Thanks,
> > ...jvh
>
>
>
> --
> Claus Ibsen
>


-- 
Claus Ibsen

Reply via email to