Hello and sorry again. After more tests, I have new details about the strange behaviors of my routes...
First, if I remove both the service reference and bean for the CamelClusterService, it seems that Camel automatically gets the service instance on the global Karaf context. Is it a new "normal" behavior, and does it mean that all the OSGi services are automatically in the scope of all the Camel contexts ? Then, when I remove the property on the file route, a new error breaks the context on the "transacted" element with an error "policy must be specified on: org.apache.camel.reifier.TransactedReifier". The Karaf feature that I use to install the routes and all the dependent features works as is with Camel 2.25. What is new in camel 3.x for transacted routes ? And finally, if I comment the "transacted" (what is an issue since I need transactions for my JMS and JDBC endpoints), the routes start, but it fails when executed with this log : org.apache.camel.component.bean.AmbiguousMethodCallException: Ambiguous method invocations possible: [public abstract java.lang.String my.test.t26.helper.Helper.help(java.lang.String), public abstract java.lang.String my.test.t26.helper.Helper.help(java.lang.String)] on the exchange: Exchange[075D67C4FC25E60-000000000000000D] Could it be because the service and its reference are both in the context, despite the explicit name of the bean that is supposed to be local for my context : <to uri="bean:myHelper" /> ? Thanks again. Regards. Le mar. 6 déc. 2022 à 18:42, Ephemeris Lappis <ephemeris.lap...@gmail.com> a écrit : > > Hello. > > Sorry to post an answer to my own mail... > > It seems that the OSGi property placeholders of my blueprints are not > taken into account. > > I've tested changing the reference of the CamelClusterService with a > bean, and now the route starting fails with a log that lets me think > that the properties are not resolved. > > Failed to create route KT1-File: > Route(KT1-File)[From[master:K1-FILE:file://{{my.input-folder... > because of Failed to resolve endpoint: > master:K1-FILE:file://{{my.input-folder}}?delete=true&moveFailed=.ERROR > due to: Property with key [my.input-folder] not found in properties > from text: > master:K1-FILE:file://{{my.input-folder}}?delete=true&moveFailed=.ERROR > > When I check the OSGi configuration, the CFG file seems to be read : > karaf@root()> config:edit my_test_26_karaf_2_routes > karaf@root()> config:property-list > my.input-folder = /SHARE/data/input > > I always used OSGi configuration place holders to set properties on > Camel routes with versions 2.x. Is it working the same way on Camel > 3.x ? > > Thanks again. > > Regards. > > Le mar. 6 déc. 2022 à 16:44, Ephemeris Lappis > <ephemeris.lap...@gmail.com> a écrit : > > > > Hello. > > > > I'm testing Camel routes that work as expected with Camel 2.25 and > > fail with Camel 3.18, both running on Karaf 4.4.2. > > > > I have a very strange behavior with the component "master". I create a > > File Lock instance of CamelClusterService and expose it as a service > > in a bundle. Then another bundle with a blueprint containing the Camel > > context gets a reference on the service to provide it for master > > endpoints. > > > > When the context is built, first logs say that the service is used and > > even that two instances (the same twice) are resolved : > > 16:29:27.218 INFO [Blueprint Extender: 3] Using CamelClusterService > > with id: null and implementation: > > org.apache.camel.component.file.cluster.FileLockClusterService@2b6df8e6 > > 16:29:27.220 INFO [Blueprint Extender: 3] Using CamelClusterService > > with id: null and implementation: > > org.apache.camel.component.file.cluster.FileLockClusterService@2b6df8e6 > > 16:29:27.535 WARN [Blueprint Event Dispatcher: 1] Multiple > > CamelClusterService instances available > > (items=[org.apache.camel.component.file.cluster.FileLockClusterService@2b6df8e6, > > org.apache.camel.component.file.cluster.FileLockClusterService@2b6df8e6]) > > > > But when the context is supposed to start, an error says that no > > service is found : > > 16:29:27.552 ERROR [Blueprint Event Dispatcher: 1] Error occurred > > during starting CamelContext: KT1 > > org.apache.camel.FailedToCreateRouteException: Failed to create route > > KT1-File: Route(KT1-File)[From[master:K1-FILE:file://{{my.input-folder... > > because of Failed to resolve endpoint: > > master://K1-FILE:file:///SHARE/data/input?delete=true&moveFailed=.ERROR > > due to: No cluster service found > > at > > org.apache.camel.reifier.RouteReifier.createRoute(RouteReifier.java:81) > > ~[?:?] > > at > > org.apache.camel.impl.DefaultModelReifierFactory.createRoute(DefaultModelReifierFactory.java:49) > > ~[?:?] > > at > > org.apache.camel.impl.DefaultCamelContext.startRouteDefinitions(DefaultCamelContext.java:878) > > ~[?:?] > > at > > org.apache.camel.impl.DefaultCamelContext.startRouteDefinitions(DefaultCamelContext.java:766) > > ~[?:?] > > at > > org.apache.camel.impl.engine.AbstractCamelContext.doInit(AbstractCamelContext.java:2947) > > ~[?:?] > > at > > org.apache.camel.support.service.BaseService.init(BaseService.java:83) > > ~[?:?] > > at > > org.apache.camel.impl.engine.AbstractCamelContext.init(AbstractCamelContext.java:2630) > > ~[?:?] > > at > > org.apache.camel.support.service.BaseService.start(BaseService.java:111) > > ~[?:?] > > at > > org.apache.camel.impl.engine.AbstractCamelContext.start(AbstractCamelContext.java:2649) > > ~[?:?] > > at > > org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:262) > > ~[?:?] > > at > > org.apache.camel.blueprint.BlueprintCamelContext.start(BlueprintCamelContext.java:241) > > ~[?:?] > > at > > org.apache.camel.blueprint.BlueprintCamelContext.maybeStart(BlueprintCamelContext.java:283) > > ~[?:?] > > at > > org.apache.camel.blueprint.BlueprintCamelContext.blueprintEvent(BlueprintCamelContext.java:188) > > ~[?:?] > > at > > org.apache.aries.blueprint.container.BlueprintEventDispatcher$3.call(BlueprintEventDispatcher.java:197) > > ~[?:?] > > at > > org.apache.aries.blueprint.container.BlueprintEventDispatcher$3.call(BlueprintEventDispatcher.java:195) > > ~[?:?] > > at java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[?:?] > > at > > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) > > ~[?:?] > > at java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[?:?] > > at > > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) > > ~[?:?] > > at java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[?:?] > > at > > java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) > > ~[?:?] > > at > > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) > > ~[?:?] > > at > > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) > > ~[?:?] > > at java.lang.Thread.run(Thread.java:829) ~[?:?] > > > > I attach the 2 blueprints with the service creation and the routes... > > > > Some idea of what changes between Camel versions for "master" ? > > > > Thanks for your help. > > > > Regards.