zapdoskit1 opened a new issue, #594: URL: https://github.com/apache/camel-karaf/issues/594
**Background:** I am upgrading an old project that uses Camel 2 in Karaf. Since it utilizes `org.apache.camel.component.zookeeper.policy.ZooKeeperRoutePolicy`, the Camel 3 migration guide suggests replacing it with `ZooKeeperClusterService`. [camel-3-migration-guide](https://camel.apache.org/manual/camel-3-migration-guide.html) Therefore, I am attempting to use `ZooKeeperClusterService` with `ClusteredRoutePolicy` in Karaf. Attached a test.xml FYI. (As cannot add xml file here, please rename the file as test.xml) [test (2).txt](https://github.com/user-attachments/files/18817220/test.2.txt) **Issue:** When using **Karaf 4.4.7** and **camel-zookeeper 4.8.2**, the following component: `org.apache.camel.component.zookeeper.cluster.ZooKeeperClusterService` does **not** work with Blueprint. **Exception:** ``` java.util.concurrent.ExecutionException: java.lang.NoClassDefFoundError: org/apache/curator/shaded/com/google/common/cache/CacheLoader at java.util.concurrent.FutureTask.report(FutureTask.java:122) ~[?:?] at java.util.concurrent.FutureTask.get(FutureTask.java:191) ~[?:?] at java.util.concurrent.AbstractExecutorService.doInvokeAny(AbstractExecutorService.java:204) ~[?:?] at java.util.concurrent.AbstractExecutorService.invokeAny(AbstractExecutorService.java:235) ~[?:?] at org.apache.aries.blueprint.utils.threading.ScheduledExecutorServiceWrapper$4.call(ScheduledExecutorServiceWrapper.java:185) ~[!/:1.10.3] at org.apache.aries.blueprint.utils.threading.ScheduledExecutorServiceWrapper$15.call(ScheduledExecutorServiceWrapper.java:446) ~[!/:1.10.3] at org.apache.aries.blueprint.utils.threading.RWLock.runReadOperation(RWLock.java:33) ~[!/:1.10.3] at org.apache.aries.blueprint.utils.threading.ScheduledExecutorServiceWrapper.runUnlessShutdown(ScheduledExecutorServiceWrapper.java:443) ~[!/:1.10.3] at org.apache.aries.blueprint.utils.threading.ScheduledExecutorServiceWrapper.invokeAny(ScheduledExecutorServiceWrapper.java:180) ~[!/:1.10.3] at org.apache.aries.blueprint.container.BlueprintEventDispatcher.callListener(BlueprintEventDispatcher.java:195) [!/:1.10.3] at org.apache.aries.blueprint.container.BlueprintEventDispatcher.callListeners(BlueprintEventDispatcher.java:178) [!/:1.10.3] at org.apache.aries.blueprint.container.BlueprintEventDispatcher.blueprintEvent(BlueprintEventDispatcher.java:133) [!/:1.10.3] at org.apache.aries.blueprint.container.BlueprintContainerImpl.doRun(BlueprintContainerImpl.java:447) [!/:1.10.3] at org.apache.aries.blueprint.container.BlueprintContainerImpl.run(BlueprintContainerImpl.java:298) [!/:1.10.3] at org.apache.aries.blueprint.container.BlueprintExtender.createContainer(BlueprintExtender.java:335) [!/:1.10.3] at org.apache.aries.blueprint.container.BlueprintExtender.createContainer(BlueprintExtender.java:288) [!/:1.10.3] at org.apache.aries.blueprint.container.BlueprintExtender.createContainer(BlueprintExtender.java:284) [!/:1.10.3] at org.apache.aries.blueprint.container.BlueprintExtender.modifiedBundle(BlueprintExtender.java:274) [!/:1.10.3] at org.apache.aries.util.tracker.hook.BundleHookBundleTracker$Tracked.customizerModified(BundleHookBundleTracker.java:500) [!/:1.10.3] at org.apache.aries.util.tracker.hook.BundleHookBundleTracker$Tracked.customizerModified(BundleHookBundleTracker.java:433) [!/:1.10.3] at org.apache.aries.util.tracker.hook.BundleHookBundleTracker$AbstractTracked.track(BundleHookBundleTracker.java:725) [!/:1.10.3] at org.apache.aries.util.tracker.hook.BundleHookBundleTracker$Tracked.bundleChanged(BundleHookBundleTracker.java:463) [!/:1.10.3] at org.apache.aries.util.tracker.hook.BundleHookBundleTracker$BundleEventHook.event(BundleHookBundleTracker.java:422) [!/:1.10.3] at org.apache.felix.framework.util.SecureAction.invokeBundleEventHook(SecureAction.java:1384) [org.apache.felix.framework-7.0.5.jar:?] at org.apache.felix.framework.EventDispatcher.createWhitelistFromHooks(EventDispatcher.java:730) [org.apache.felix.framework-7.0.5.jar:?] at org.apache.felix.framework.EventDispatcher.fireBundleEvent(EventDispatcher.java:485) [org.apache.felix.framework-7.0.5.jar:?] at org.apache.felix.framework.Felix.fireBundleEvent(Felix.java:4847) [org.apache.felix.framework-7.0.5.jar:?] at org.apache.felix.framework.Felix.startBundle(Felix.java:2363) [org.apache.felix.framework-7.0.5.jar:?] at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1566) [org.apache.felix.framework-7.0.5.jar:?] at org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:297) [org.apache.felix.framework-7.0.5.jar:?] at java.lang.Thread.run(Thread.java:840) [?:?] Caused by: java.lang.NoClassDefFoundError: org/apache/curator/shaded/com/google/common/cache/CacheLoader at org.apache.curator.framework.CuratorFrameworkFactory$Builder.<init>(CuratorFrameworkFactory.java:171) ~[?:?] at org.apache.curator.framework.CuratorFrameworkFactory$Builder.<init>(CuratorFrameworkFactory.java:154) ~[?:?] at org.apache.curator.framework.CuratorFrameworkFactory.builder(CuratorFrameworkFactory.java:80) ~[?:?] at org.apache.camel.component.zookeeper.ZooKeeperCuratorHelper.createCurator(ZooKeeperCuratorHelper.java:48) ~[?:?] at org.apache.camel.component.zookeeper.cluster.ZooKeeperClusterService.getOrCreateCurator(ZooKeeperClusterService.java:241) ~[?:?] at org.apache.camel.component.zookeeper.cluster.ZooKeeperClusterService.createView(ZooKeeperClusterService.java:208) ~[?:?] at org.apache.camel.component.zookeeper.cluster.ZooKeeperClusterService.createView(ZooKeeperClusterService.java:32) ~[?:?] at org.apache.camel.support.cluster.AbstractCamelClusterService.lambda$getView$3(AbstractCamelClusterService.java:147) ~[?:?] at org.apache.camel.util.concurrent.LockHelper.callWithWriteLock(LockHelper.java:94) ~[?:?] at org.apache.camel.support.cluster.AbstractCamelClusterService.getView(AbstractCamelClusterService.java:141) ~[?:?] at org.apache.camel.impl.cluster.ClusteredRoutePolicy.retainClusterView(ClusteredRoutePolicy.java:225) ~[?:?] at org.apache.camel.util.ReferenceCount.retain(ReferenceCount.java:51) ~[?:?] at org.apache.camel.impl.cluster.ClusteredRoutePolicy.onInit(ClusteredRoutePolicy.java:164) ~[?:?] at org.apache.camel.reifier.RouteReifier.doCreateRoute(RouteReifier.java:363) ~[?:?] at org.apache.camel.reifier.RouteReifier.createRoute(RouteReifier.java:86) ~[?:?] at org.apache.camel.impl.DefaultModelReifierFactory.createRoute(DefaultModelReifierFactory.java:49) ~[?:?] at org.apache.camel.impl.DefaultCamelContext.startRouteDefinitions(DefaultCamelContext.java:726) ~[?:?] at org.apache.camel.impl.DefaultCamelContext.startRouteDefinitions(DefaultCamelContext.java:592) ~[?:?] at org.apache.camel.impl.engine.AbstractCamelContext.doInit(AbstractCamelContext.java:2433) ~[?:?] at org.apache.camel.support.service.BaseService.init(BaseService.java:85) ~[?:?] at org.apache.camel.impl.engine.AbstractCamelContext.init(AbstractCamelContext.java:2068) ~[?:?] at org.apache.camel.support.service.BaseService.start(BaseService.java:115) ~[?:?] at org.apache.camel.impl.engine.AbstractCamelContext.start(AbstractCamelContext.java:2087) ~[?:?] at org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:211) ~[?:?] at org.apache.camel.blueprint.BlueprintCamelContext.start(BlueprintCamelContext.java:234) ~[?:?] at org.apache.camel.blueprint.BlueprintCamelContext.maybeStart(BlueprintCamelContext.java:276) ~[?:?] at org.apache.camel.blueprint.BlueprintCamelContext.blueprintEvent(BlueprintCamelContext.java:180) ~[?:?] 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:539) ~[?:?] at java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[?:?] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) ~[?:?] 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:1136) ~[?:?] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[?:?] ... 1 more Caused by: java.lang.ClassNotFoundException: org.apache.curator.shaded.com.google.common.cache.CacheLoader not found by curator-framework [164] at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1591) ~[?:?] at org.apache.felix.framework.BundleWiringImpl.access$300(BundleWiringImpl.java:79) ~[?:?] at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1976) ~[?:?] at java.lang.ClassLoader.loadClass(ClassLoader.java:525) ~[?:?] at org.apache.curator.framework.CuratorFrameworkFactory$Builder.<init>(CuratorFrameworkFactory.java:171) ~[?:?] at org.apache.curator.framework.CuratorFrameworkFactory$Builder.<init>(CuratorFrameworkFactory.java:154) ~[?:?] at org.apache.curator.framework.CuratorFrameworkFactory.builder(CuratorFrameworkFactory.java:80) ~[?:?] at org.apache.camel.component.zookeeper.ZooKeeperCuratorHelper.createCurator(ZooKeeperCuratorHelper.java:48) ~[?:?] at org.apache.camel.component.zookeeper.cluster.ZooKeeperClusterService.getOrCreateCurator(ZooKeeperClusterService.java:241) ~[?:?] at org.apache.camel.component.zookeeper.cluster.ZooKeeperClusterService.createView(ZooKeeperClusterService.java:208) ~[?:?] at org.apache.camel.component.zookeeper.cluster.ZooKeeperClusterService.createView(ZooKeeperClusterService.java:32) ~[?:?] at org.apache.camel.support.cluster.AbstractCamelClusterService.lambda$getView$3(AbstractCamelClusterService.java:147) ~[?:?] at org.apache.camel.util.concurrent.LockHelper.callWithWriteLock(LockHelper.java:94) ~[?:?] at org.apache.camel.support.cluster.AbstractCamelClusterService.getView(AbstractCamelClusterService.java:141) ~[?:?] at org.apache.camel.impl.cluster.ClusteredRoutePolicy.retainClusterView(ClusteredRoutePolicy.java:225) ~[?:?] at org.apache.camel.util.ReferenceCount.retain(ReferenceCount.java:51) ~[?:?] at org.apache.camel.impl.cluster.ClusteredRoutePolicy.onInit(ClusteredRoutePolicy.java:164) ~[?:?] at org.apache.camel.reifier.RouteReifier.doCreateRoute(RouteReifier.java:363) ~[?:?] at org.apache.camel.reifier.RouteReifier.createRoute(RouteReifier.java:86) ~[?:?] at org.apache.camel.impl.DefaultModelReifierFactory.createRoute(DefaultModelReifierFactory.java:49) ~[?:?] at org.apache.camel.impl.DefaultCamelContext.startRouteDefinitions(DefaultCamelContext.java:726) ~[?:?] at org.apache.camel.impl.DefaultCamelContext.startRouteDefinitions(DefaultCamelContext.java:592) ~[?:?] at org.apache.camel.impl.engine.AbstractCamelContext.doInit(AbstractCamelContext.java:2433) ~[?:?] at org.apache.camel.support.service.BaseService.init(BaseService.java:85) ~[?:?] at org.apache.camel.impl.engine.AbstractCamelContext.init(AbstractCamelContext.java:2068) ~[?:?] at org.apache.camel.support.service.BaseService.start(BaseService.java:115) ~[?:?] at org.apache.camel.impl.engine.AbstractCamelContext.start(AbstractCamelContext.java:2087) ~[?:?] at org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:211) ~[?:?] at org.apache.camel.blueprint.BlueprintCamelContext.start(BlueprintCamelContext.java:234) ~[?:?] at org.apache.camel.blueprint.BlueprintCamelContext.maybeStart(BlueprintCamelContext.java:276) ~[?:?] at org.apache.camel.blueprint.BlueprintCamelContext.blueprintEvent(BlueprintCamelContext.java:180) ~[?:?] 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:539) ~[?:?] at java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[?:?] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) ~[?:?] 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:1136) ~[?:?] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[?:?] ... 1 more ``` [karaf (1).log](https://github.com/user-attachments/files/18817207/karaf.1.log) **Steps to Reproduce:** 1. Download and extract Karaf 4.4.7 from official website [official website](https://karaf.apache.org/download) 2. Run `./karaf` in apache-karaf-4.4.7\bin 3. After startup, execute the following commands in the Karaf console: ``` feature:install spring feature:repo-add mvn:org.apache.camel.karaf/apache-camel/4.8.2/xml/features feature:install camel feature:install camel-jms feature:install camel-http feature:install camel-zookeeper feature:install camel-jetty feature:install camel-velocity feature:install camel-ftp feature:install camel-blueprint ``` 4. Exit Karaf by pressing Ctrl + d. 5. Place the attached *test.xml* into apache-karaf-4.4.7\deploy 6. Run `./start` in apache-karaf-4.4.7\bin 7. Check the karaf.log for errors in apache-karaf-4.4.7\data\log Note: I have added an issue in Jira previously, and it passed to here. [CAMEL-21745](https://issues.apache.org/jira/browse/CAMEL-21745) -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: commits-unsubscr...@camel.apache.org.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org