[ 
https://issues.apache.org/jira/browse/CAMEL-21745?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17927580#comment-17927580
 ] 

vincenttang commented on CAMEL-21745:
-------------------------------------

Got it. Thanks both.

> ZooKeeperClusterService does not work with Blueprint in Karaf
> -------------------------------------------------------------
>
>                 Key: CAMEL-21745
>                 URL: https://issues.apache.org/jira/browse/CAMEL-21745
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-zookeeper
>    Affects Versions: 4.8.2
>         Environment: Karaf 4.4.7
>            Reporter: vincenttang
>            Priority: Major
>         Attachments: karaf.log, test.xml
>
>
> *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.
> [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.
> *Issue:*
> When using *Karaf 4.4.7* and {*}camel-zookeeper 4.8.2{*}, the following 
> component:
> {code:java}
> org.apache.camel.component.zookeeper.cluster.ZooKeeperClusterService{code}
> does *not* work with Blueprint.
> *Exception:*
>  
> {code:java}
> {code}
> *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*
>  
> *Steps to Reproduce:*
>  # Download and extract Karaf 4.4.7 from official website 
> [https://karaf.apache.org/download]
>  # Run
> {code:java}
> ./karaf{code}
>  in apache-karaf-4.4.7\bin
>  # After startup, execute the following commands in the Karaf console:
>  
> {code:java}
> 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{code}
>  # Exit Karaf by pressing Ctrl + d.
>  # Place the attached *test.xml* into apache-karaf-4.4.7\deploy
>  # Run 
> {code:java}
> ./start{code}
>  in apache-karaf-4.4.7\bin 
>  # Check the karaf.log for errors in apache-karaf-4.4.7\data\log



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to