curator-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jordan Zimmerman <jor...@jordanzimmerman.com>
Subject Re: curator pathcache
Date Thu, 10 Mar 2016 02:16:11 GMT
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 <elastic.l.k@gmail.com> 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 <http://curator.apache.org/>
> 
> Let me try it using maven instead.
> 
> On Wed, Mar 9, 2016 at 6:09 PM, Jordan Zimmerman <jordan@jordanzimmerman.com <mailto:jordan@jordanzimmerman.com>>
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 <elastic.l.k@gmail.com <mailto:elastic.l.k@gmail.com>>
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 <elastic.l.k@gmail.com <mailto:elastic.l.k@gmail.com>>
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 <mckenzie.cam@gmail.com <mailto:mckenzie.cam@gmail.com>>
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 <elastic.l.k@gmail.com <mailto:elastic.l.k@gmail.com>>
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 <mckenzie.cam@gmail.com <mailto:mckenzie.cam@gmail.com>>
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 <elastic.l.k@gmail.com <mailto:elastic.l.k@gmail.com>>
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 <mckenzie.cam@gmail.com <mailto:mckenzie.cam@gmail.com>>
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 <elastic.l.k@gmail.com <mailto:elastic.l.k@gmail.com>>
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 <mckenzie.cam@gmail.com <mailto:mckenzie.cam@gmail.com>>
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 <elastic.l.k@gmail.com <mailto:elastic.l.k@gmail.com>>
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 <mckenzie.cam@gmail.com <mailto:mckenzie.cam@gmail.com>>
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 <elastic.l.k@gmail.com <mailto:elastic.l.k@gmail.com>>
wrote:
>> 
>> ---------- Forwarded message ----------
>> From: s influxdb <elastic.l.k@gmail.com <mailto:elastic.l.k@gmail.com>>
>> Date: Wed, Mar 9, 2016 at 10:36 AM
>> Subject: Re: curator pathcache
>> To: Jordan Zimmerman <jordan@jordanzimmerman.com <mailto:jordan@jordanzimmerman.com>>
>> Cc: user@curator.apache.org <mailto:user@curator.apache.org>
>> 
>> 
>> 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
<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 <jordan@jordanzimmerman.com <mailto:jordan@jordanzimmerman.com>>
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 <elastic.l.k@gmail.com <mailto:elastic.l.k@gmail.com>>
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()));
>> >                }
>> >            }
>> >        }
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
> 
> 


Mime
View raw message