Thanks Jordan. I will try with sample Maven pom file. I spend a good deal of time by building the project in Eclipse just by adding the JARs. I appreciate the quick replies very much.
On Wed, Mar 9, 2016 at 6:16 PM, Jordan Zimmerman <[email protected] > wrote: > You need to do much more than that. Have you done much Java programming? > Curator’s TestServer is in a separate artifact. I suggest you use a > dependency manager such as Maven or Gradle. The Curator examples directory > has a Maven pom file that you can use. But, explaining Maven, etc. is more > than we can do in an email. > > https://github.com/apache/curator/tree/master/curator-examples > > -Jordan > > > On Mar 9, 2016, at 9:13 PM, s influxdb <[email protected]> wrote: > > i was using the Eclipse IDE and adding the Curator JAR's as External JAR. > It resolves for curator framework , curator client etc > > The code i have is nothing but the sample PathCacheExample.java code from > the examples posted in curator.apache.org > > Let me try it using maven instead. > > On Wed, Mar 9, 2016 at 6:09 PM, Jordan Zimmerman < > [email protected]> wrote: > >> Post your code along with whatever build scripts you’re using to Github >> or something similar and we’ll have a look. Are you using Maven? Gradle? >> How are you putting your dependencies together? >> >> On Mar 9, 2016, at 9:04 PM, s influxdb <[email protected]> wrote: >> >> i tried all the curator libraries . still same result . TestingServer or >> the PathCache isn't working >> >> On Wed, Mar 9, 2016 at 5:22 PM, s influxdb <[email protected]> wrote: >> >>> Ok let me try that. >>> >>> On another note this piece of nodecache code works >>> >>> final NodeCache nodeCache = new NodeCache(client, PATH); >>> nodeCache.getListenable().addListener(new >>> NodeCacheListener() { >>> @Override >>> public void nodeChanged() throws Exception { >>> ChildData currentData = >>> nodeCache.getCurrentData(); >>> System.out.println("data change watched, and >>> current data = " + new String(currentData.getData())); >>> } >>> }); >>> nodeCache.start(); >>> Thread.sleep(50000); >>> >>> On Wed, Mar 9, 2016 at 5:20 PM, Cameron McKenzie <[email protected] >>> > wrote: >>> >>>> You must have some old Curator stuff on your classpath. All of the >>>> curator stuff has an org.apache package prefix. It was ported from Netflix >>>> some time ago. >>>> >>>> On Thu, Mar 10, 2016 at 12:15 PM, s influxdb <[email protected]> >>>> wrote: >>>> >>>>> I see the TestingServer class in import >>>>> com.netflix.curator.test.TestingServer; >>>>> >>>>> In the sample file i see it as import >>>>> org.apache.curator.test.TestingServer; >>>>> >>>>> Even then i get the below error while instantiating a TestingServer >>>>> Class >>>>> Default constructor cannot handle exception type Exception thrown by >>>>> implicit super constructor. Must define an explicit constructor >>>>> >>>>> Then i tried the TestingCluster class >>>>> static TestingCluster server = new TestingCluster(); >>>>> >>>>> That gives me a class not found exception >>>>> Exception in thread "main" java.lang.NoClassDefFoundError: >>>>> javassist/NotFoundException >>>>> at >>>>> com.netflix.curator.test.TestingCluster.<clinit>(TestingCluster.java:40) >>>>> >>>>> >>>>> On Wed, Mar 9, 2016 at 4:16 PM, Cameron McKenzie < >>>>> [email protected]> wrote: >>>>> >>>>>> The TestingServer class is definitely in the curator-test jar, so you >>>>>> must have some issue with your build / IDE environment. >>>>>> >>>>>> On Thu, Mar 10, 2016 at 11:13 AM, s influxdb <[email protected]> >>>>>> wrote: >>>>>> >>>>>>> I tried importing the curator-test artifcactid and it this import >>>>>>> org.apache.curator.test.TestingServer; doesn't resolve >>>>>>> >>>>>>> On Wed, Mar 9, 2016 at 2:58 PM, Cameron McKenzie < >>>>>>> [email protected]> wrote: >>>>>>> >>>>>>>> Can you try running the PathCacheExample unmodified? It uses a >>>>>>>> testing ZK server. But can you just confirm that this much works for >>>>>>>> you? >>>>>>>> Then maybe try and modify the sample so that it connects to your real >>>>>>>> ZK >>>>>>>> instance? >>>>>>>> >>>>>>>> On Thu, Mar 10, 2016 at 9:53 AM, s influxdb <[email protected]> >>>>>>>> wrote: >>>>>>>> >>>>>>>>> i did try adding a sleep and got the same result >>>>>>>>> cache.start(); >>>>>>>>> Thread.sleep(5000); >>>>>>>>> list(cache); >>>>>>>>> >>>>>>>>> I am using curator libraries version 2.10 and zookeeper version >>>>>>>>> 3..4.6 >>>>>>>>> >>>>>>>>> On Wed, Mar 9, 2016 at 2:19 PM, Cameron McKenzie < >>>>>>>>> [email protected]> wrote: >>>>>>>>> >>>>>>>>>> I think that you have a race condition between calling start() on >>>>>>>>>> your cache and calling list(). Calling list() just checks the >>>>>>>>>> current state >>>>>>>>>> of the cache. If it hasn't communicated with ZK yet, it won't have >>>>>>>>>> any >>>>>>>>>> data. Try putting in a sleep after the cache.start() call, before >>>>>>>>>> you call >>>>>>>>>> list(). >>>>>>>>>> >>>>>>>>>> On Thu, Mar 10, 2016 at 9:16 AM, s influxdb < >>>>>>>>>> [email protected]> wrote: >>>>>>>>>> >>>>>>>>>>> sure >>>>>>>>>>> >>>>>>>>>>> main class >>>>>>>>>>> RetryPolicy retryPolicy = new ExponentialBackoffRetry(1000, >>>>>>>>>>> 3); >>>>>>>>>>> client = >>>>>>>>>>> CuratorFrameworkFactory.newClient("10.x.x.x", retryPolicy); >>>>>>>>>>> client.start(); >>>>>>>>>>> SyncData sd = new SyncData(client); >>>>>>>>>>> sd.run(); >>>>>>>>>>> >>>>>>>>>>> the class that calls cache >>>>>>>>>>> >>>>>>>>>>> private static final String PATH = "/zktest"; >>>>>>>>>>> >>>>>>>>>>> public void run () throws Exception >>>>>>>>>>> { >>>>>>>>>>> try { >>>>>>>>>>> >>>>>>>>>>> cache = new PathChildrenCache(client, PATH, true); >>>>>>>>>>> cache.start(); >>>>>>>>>>> >>>>>>>>>>> list(cache); >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> for(;;) { >>>>>>>>>>> try { >>>>>>>>>>> Thread.sleep(50000); >>>>>>>>>>> } catch(InterruptedException e) { >>>>>>>>>>> } >>>>>>>>>>> } >>>>>>>>>>> >>>>>>>>>>> } >>>>>>>>>>> finally { >>>>>>>>>>> CloseableUtils.closeQuietly(cache); >>>>>>>>>>> } >>>>>>>>>>> } >>>>>>>>>>> >>>>>>>>>>> On Wed, Mar 9, 2016 at 1:30 PM, Cameron McKenzie < >>>>>>>>>>> [email protected]> wrote: >>>>>>>>>>> >>>>>>>>>>>> I just tried running the example and it seems to work fine for >>>>>>>>>>>> me. I assume that you modified the code in some way for it to run >>>>>>>>>>>> against a >>>>>>>>>>>> proper ZK instance? Can you post it somewhere? >>>>>>>>>>>> >>>>>>>>>>>> On Thu, Mar 10, 2016 at 5:53 AM, s influxdb < >>>>>>>>>>>> [email protected]> wrote: >>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> ---------- Forwarded message ---------- >>>>>>>>>>>>> From: s influxdb <[email protected]> >>>>>>>>>>>>> Date: Wed, Mar 9, 2016 at 10:36 AM >>>>>>>>>>>>> Subject: Re: curator pathcache >>>>>>>>>>>>> To: Jordan Zimmerman <[email protected]> >>>>>>>>>>>>> Cc: [email protected] >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> Sorry for posting this in a wrong forum the first time. >>>>>>>>>>>>> >>>>>>>>>>>>> I recreated a new project and was running the example code >>>>>>>>>>>>> here for cache : >>>>>>>>>>>>> http://curator.apache.org/curator-examples/index.html >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> Today when i try to replicathe NPE i am unable to do that . >>>>>>>>>>>>> However when i call the list(cache) it prints the size of the >>>>>>>>>>>>> data in the node as 0. This works with NodeCache >>>>>>>>>>>>> >>>>>>>>>>>>> Curator libraries are 2.10 and zookeeper version 3.4.6. >>>>>>>>>>>>> >>>>>>>>>>>>> Ideally i would like to use TreeCache but it gave me NPE too. >>>>>>>>>>>>> My use case is setting a watch on the entire znode in the cluster >>>>>>>>>>>>> and be >>>>>>>>>>>>> notified about it. Thanks for replying to the mail. >>>>>>>>>>>>> >>>>>>>>>>>>> private static void list(PathChildrenCache cache) >>>>>>>>>>>>> { >>>>>>>>>>>>> if ( cache.getCurrentData().size() == 0 ) >>>>>>>>>>>>> { >>>>>>>>>>>>> System.out.println("* empty *"); >>>>>>>>>>>>> } >>>>>>>>>>>>> else >>>>>>>>>>>>> { >>>>>>>>>>>>> for ( ChildData data : cache.getCurrentData() ) >>>>>>>>>>>>> { >>>>>>>>>>>>> System.out.println(data.getPath() + " = " + >>>>>>>>>>>>> new String(data.getData())); >>>>>>>>>>>>> } >>>>>>>>>>>>> } >>>>>>>>>>>>> } >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> On Wed, Mar 9, 2016 at 9:44 AM, Jordan Zimmerman < >>>>>>>>>>>>> [email protected]> wrote: >>>>>>>>>>>>> >>>>>>>>>>>>>> Moving this to Curator’s list… >>>>>>>>>>>>>> >>>>>>>>>>>>>> Where do you get the NPE? Please send the stacktrace. >>>>>>>>>>>>>> >>>>>>>>>>>>>> -Jordan >>>>>>>>>>>>>> >>>>>>>>>>>>>> > On Mar 8, 2016, at 8:27 PM, s influxdb < >>>>>>>>>>>>>> [email protected]> wrote: >>>>>>>>>>>>>> > >>>>>>>>>>>>>> > I am trying to run the path cahce and keep java NPE >>>>>>>>>>>>>> > >>>>>>>>>>>>>> > Running curator 2.9.0 libraries against a zookeeper 3.4.6 >>>>>>>>>>>>>> cluster >>>>>>>>>>>>>> > Even >>>>>>>>>>>>>> > >>>>>>>>>>>>>> > The samples are taken from the curator examples . >>>>>>>>>>>>>> > >>>>>>>>>>>>>> > >>>>>>>>>>>>>> > >>>>>>>>>>>>>> > public void run () throws Exception >>>>>>>>>>>>>> > { >>>>>>>>>>>>>> > try { >>>>>>>>>>>>>> > >>>>>>>>>>>>>> > pcache = new PathChildrenCache(client, PATH, >>>>>>>>>>>>>> true); >>>>>>>>>>>>>> > pcache.start(); >>>>>>>>>>>>>> > >>>>>>>>>>>>>> > addListener(cache); >>>>>>>>>>>>>> > >>>>>>>>>>>>>> > // list(pcache); >>>>>>>>>>>>>> > >>>>>>>>>>>>>> > pcache.close(); >>>>>>>>>>>>>> > } >>>>>>>>>>>>>> > finally { >>>>>>>>>>>>>> > CloseableUtils.closeQuietly(cache); >>>>>>>>>>>>>> > } >>>>>>>>>>>>>> > } >>>>>>>>>>>>>> > >>>>>>>>>>>>>> > >>>>>>>>>>>>>> > private static void addListener(PathChildrenCache >>>>>>>>>>>>>> cache) >>>>>>>>>>>>>> > { >>>>>>>>>>>>>> > // a PathChildrenCacheListener is optional. Here, >>>>>>>>>>>>>> it's used just >>>>>>>>>>>>>> > to log changes >>>>>>>>>>>>>> > PathChildrenCacheListener listener = new >>>>>>>>>>>>>> > PathChildrenCacheListener() >>>>>>>>>>>>>> > { >>>>>>>>>>>>>> > @Override >>>>>>>>>>>>>> > public void childEvent(CuratorFramework client, >>>>>>>>>>>>>> > PathChildrenCacheEvent event) throws Exception >>>>>>>>>>>>>> > { >>>>>>>>>>>>>> > switch ( event.getType() ) >>>>>>>>>>>>>> > { >>>>>>>>>>>>>> > case CHILD_ADDED: >>>>>>>>>>>>>> > { >>>>>>>>>>>>>> > System.out.println("Node added: " + >>>>>>>>>>>>>> > ZKPaths.getNodeFromPath(event.getData().getPath())); >>>>>>>>>>>>>> > break; >>>>>>>>>>>>>> > } >>>>>>>>>>>>>> > >>>>>>>>>>>>>> > case CHILD_UPDATED: >>>>>>>>>>>>>> > { >>>>>>>>>>>>>> > System.out.println("Node changed: >>>>>>>>>>>>>> " + >>>>>>>>>>>>>> > ZKPaths.getNodeFromPath(event.getData().getPath())); >>>>>>>>>>>>>> > break; >>>>>>>>>>>>>> > } >>>>>>>>>>>>>> > >>>>>>>>>>>>>> > case CHILD_REMOVED: >>>>>>>>>>>>>> > { >>>>>>>>>>>>>> > System.out.println("Node removed: >>>>>>>>>>>>>> " + >>>>>>>>>>>>>> > ZKPaths.getNodeFromPath(event.getData().getPath())); >>>>>>>>>>>>>> > break; >>>>>>>>>>>>>> > } >>>>>>>>>>>>>> > } >>>>>>>>>>>>>> > } >>>>>>>>>>>>>> > }; >>>>>>>>>>>>>> > cache.getListenable().addListener(listener); >>>>>>>>>>>>>> > } >>>>>>>>>>>>>> > >>>>>>>>>>>>>> > >>>>>>>>>>>>>> > Here running a list returns empty size all the time >>>>>>>>>>>>>> > >>>>>>>>>>>>>> > private static void list(PathChildrenCache cache) >>>>>>>>>>>>>> > { >>>>>>>>>>>>>> > >>>>>>>>>>>>>> > if ( cache.getCurrentData().size() == 0 ) >>>>>>>>>>>>>> > { >>>>>>>>>>>>>> > System.out.println("* empty *"); >>>>>>>>>>>>>> > } >>>>>>>>>>>>>> > else >>>>>>>>>>>>>> > { >>>>>>>>>>>>>> > for ( ChildData data : >>>>>>>>>>>>>> cache.getCurrentData() ) >>>>>>>>>>>>>> > { >>>>>>>>>>>>>> > System.out.println(data.getPath() + " = >>>>>>>>>>>>>> " + new >>>>>>>>>>>>>> > String(data.getData())); >>>>>>>>>>>>>> > } >>>>>>>>>>>>>> > } >>>>>>>>>>>>>> > } >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>> >>>>>> >>>>> >>>> >>> >> >> > >
